These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / lustre / lustre / ptlrpc / sec_config.c
index 56ba9e4..7ff948f 100644 (file)
 
 #include "ptlrpc_internal.h"
 
-const char *sptlrpc_part2name(enum lustre_sec_part part)
-{
-       switch (part) {
-       case LUSTRE_SP_CLI:
-               return "cli";
-       case LUSTRE_SP_MDT:
-               return "mdt";
-       case LUSTRE_SP_OST:
-               return "ost";
-       case LUSTRE_SP_MGC:
-               return "mgc";
-       case LUSTRE_SP_MGS:
-               return "mgs";
-       case LUSTRE_SP_ANY:
-               return "any";
-       default:
-               return "err";
-       }
-}
-EXPORT_SYMBOL(sptlrpc_part2name);
-
 enum lustre_sec_part sptlrpc_target_sec_part(struct obd_device *obd)
 {
        const char *type = obd->obd_type->typ_name;
@@ -94,8 +73,8 @@ EXPORT_SYMBOL(sptlrpc_target_sec_part);
  */
 int sptlrpc_parse_flavor(const char *str, struct sptlrpc_flavor *flvr)
 {
-       char        buf[32];
-       char       *bulk, *alg;
+       char buf[32];
+       char *bulk, *alg;
 
        memset(flvr, 0, sizeof(*flvr));
 
@@ -180,10 +159,10 @@ static void sptlrpc_rule_init(struct sptlrpc_rule *rule)
 /*
  * format: network[.direction]=flavor
  */
-int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule)
+static int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule)
 {
-       char       *flavor, *dir;
-       int          rc;
+       char *flavor, *dir;
+       int rc;
 
        sptlrpc_rule_init(rule);
 
@@ -234,25 +213,22 @@ int sptlrpc_parse_rule(char *param, struct sptlrpc_rule *rule)
 
        return 0;
 }
-EXPORT_SYMBOL(sptlrpc_parse_rule);
 
-void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset)
+static void sptlrpc_rule_set_free(struct sptlrpc_rule_set *rset)
 {
        LASSERT(rset->srs_nslot ||
                (rset->srs_nrule == 0 && rset->srs_rules == NULL));
 
        if (rset->srs_nslot) {
-               OBD_FREE(rset->srs_rules,
-                        rset->srs_nslot * sizeof(*rset->srs_rules));
+               kfree(rset->srs_rules);
                sptlrpc_rule_set_init(rset);
        }
 }
-EXPORT_SYMBOL(sptlrpc_rule_set_free);
 
 /*
  * return 0 if the rule set could accommodate one more rule.
  */
-int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset)
+static int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset)
 {
        struct sptlrpc_rule *rules;
        int nslot;
@@ -265,7 +241,7 @@ int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset)
        nslot = rset->srs_nslot + 8;
 
        /* better use realloc() if available */
-       OBD_ALLOC(rules, nslot * sizeof(*rset->srs_rules));
+       rules = kcalloc(nslot, sizeof(*rset->srs_rules), GFP_NOFS);
        if (rules == NULL)
                return -ENOMEM;
 
@@ -274,30 +250,31 @@ int sptlrpc_rule_set_expand(struct sptlrpc_rule_set *rset)
                memcpy(rules, rset->srs_rules,
                       rset->srs_nrule * sizeof(*rset->srs_rules));
 
-               OBD_FREE(rset->srs_rules,
-                        rset->srs_nslot * sizeof(*rset->srs_rules));
+               kfree(rset->srs_rules);
        }
 
        rset->srs_rules = rules;
        rset->srs_nslot = nslot;
        return 0;
 }
-EXPORT_SYMBOL(sptlrpc_rule_set_expand);
 
 static inline int rule_spec_dir(struct sptlrpc_rule *rule)
 {
        return (rule->sr_from != LUSTRE_SP_ANY ||
                rule->sr_to != LUSTRE_SP_ANY);
 }
+
 static inline int rule_spec_net(struct sptlrpc_rule *rule)
 {
        return (rule->sr_netid != LNET_NIDNET(LNET_NID_ANY));
 }
+
 static inline int rule_match_dir(struct sptlrpc_rule *r1,
                                 struct sptlrpc_rule *r2)
 {
        return (r1->sr_from == r2->sr_from && r1->sr_to == r2->sr_to);
 }
+
 static inline int rule_match_net(struct sptlrpc_rule *r1,
                                 struct sptlrpc_rule *r2)
 {
@@ -308,12 +285,12 @@ static inline int rule_match_net(struct sptlrpc_rule *r1,
  * merge @rule into @rset.
  * the @rset slots might be expanded.
  */
-int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset,
-                          struct sptlrpc_rule *rule)
+static int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset,
+                                 struct sptlrpc_rule *rule)
 {
-       struct sptlrpc_rule      *p = rset->srs_rules;
-       int                    spec_dir, spec_net;
-       int                    rc, n, match = 0;
+       struct sptlrpc_rule *p = rset->srs_rules;
+       int spec_dir, spec_net;
+       int rc, n, match = 0;
 
        might_sleep();
 
@@ -393,20 +370,19 @@ int sptlrpc_rule_set_merge(struct sptlrpc_rule_set *rset,
 
        return 0;
 }
-EXPORT_SYMBOL(sptlrpc_rule_set_merge);
 
 /**
  * given from/to/nid, determine a matching flavor in ruleset.
  * return 1 if a match found, otherwise return 0.
  */
-int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset,
-                           enum lustre_sec_part from,
-                           enum lustre_sec_part to,
-                           lnet_nid_t nid,
-                           struct sptlrpc_flavor *sf)
+static int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset,
+                                  enum lustre_sec_part from,
+                                  enum lustre_sec_part to,
+                                  lnet_nid_t nid,
+                                  struct sptlrpc_flavor *sf)
 {
-       struct sptlrpc_rule    *r;
-       int                  n;
+       struct sptlrpc_rule *r;
+       int n;
 
        for (n = 0; n < rset->srs_nrule; n++) {
                r = &rset->srs_rules[n];
@@ -430,20 +406,6 @@ int sptlrpc_rule_set_choose(struct sptlrpc_rule_set *rset,
 
        return 0;
 }
-EXPORT_SYMBOL(sptlrpc_rule_set_choose);
-
-void sptlrpc_rule_set_dump(struct sptlrpc_rule_set *rset)
-{
-       struct sptlrpc_rule *r;
-       int     n;
-
-       for (n = 0; n < rset->srs_nrule; n++) {
-               r = &rset->srs_rules[n];
-               CDEBUG(D_SEC, "<%02d> from %x to %x, net %x, rpc %x\n", n,
-                      r->sr_from, r->sr_to, r->sr_netid, r->sr_flvr.sf_rpc);
-       }
-}
-EXPORT_SYMBOL(sptlrpc_rule_set_dump);
 
 /**********************************
  * sptlrpc configuration support  *
@@ -476,8 +438,8 @@ static inline int is_hex(char c)
 
 static void target2fsname(const char *tgt, char *fsname, int buflen)
 {
-       const char     *ptr;
-       int          len;
+       const char *ptr;
+       int len;
 
        ptr = strrchr(tgt, '-');
        if (ptr) {
@@ -509,7 +471,7 @@ static void sptlrpc_conf_free_rsets(struct sptlrpc_conf *conf)
                                     &conf->sc_tgts, sct_list) {
                sptlrpc_rule_set_free(&conf_tgt->sct_rset);
                list_del(&conf_tgt->sct_list);
-               OBD_FREE_PTR(conf_tgt);
+               kfree(conf_tgt);
        }
        LASSERT(list_empty(&conf->sc_tgts));
 
@@ -523,7 +485,7 @@ static void sptlrpc_conf_free(struct sptlrpc_conf *conf)
 
        sptlrpc_conf_free_rsets(conf);
        list_del(&conf->sc_list);
-       OBD_FREE_PTR(conf);
+       kfree(conf);
 }
 
 static
@@ -541,7 +503,7 @@ struct sptlrpc_conf_tgt *sptlrpc_conf_get_tgt(struct sptlrpc_conf *conf,
        if (!create)
                return NULL;
 
-       OBD_ALLOC_PTR(conf_tgt);
+       conf_tgt = kzalloc(sizeof(*conf_tgt), GFP_NOFS);
        if (conf_tgt) {
                strlcpy(conf_tgt->sct_name, name, sizeof(conf_tgt->sct_name));
                sptlrpc_rule_set_init(&conf_tgt->sct_rset);
@@ -565,8 +527,8 @@ struct sptlrpc_conf *sptlrpc_conf_get(const char *fsname,
        if (!create)
                return NULL;
 
-       OBD_ALLOC_PTR(conf);
-       if (conf == NULL)
+       conf = kzalloc(sizeof(*conf), GFP_NOFS);
+       if (!conf)
                return NULL;
 
        strcpy(conf->sc_fsname, fsname);
@@ -585,8 +547,8 @@ static int sptlrpc_conf_merge_rule(struct sptlrpc_conf *conf,
                                   const char *target,
                                   struct sptlrpc_rule *rule)
 {
-       struct sptlrpc_conf_tgt  *conf_tgt;
-       struct sptlrpc_rule_set  *rule_set;
+       struct sptlrpc_conf_tgt *conf_tgt;
+       struct sptlrpc_rule_set *rule_set;
 
        /* fsname == target means general rules for the whole fs */
        if (strcmp(conf->sc_fsname, target) == 0) {
@@ -612,10 +574,10 @@ static int sptlrpc_conf_merge_rule(struct sptlrpc_conf *conf,
 static int __sptlrpc_process_config(struct lustre_cfg *lcfg,
                                    struct sptlrpc_conf *conf)
 {
-       char               *target, *param;
-       char                fsname[MTI_NAME_MAXLEN];
-       struct sptlrpc_rule     rule;
-       int                  rc;
+       char *target, *param;
+       char fsname[MTI_NAME_MAXLEN];
+       struct sptlrpc_rule rule;
+       int rc;
 
        target = lustre_cfg_string(lcfg, 1);
        if (target == NULL) {
@@ -673,8 +635,8 @@ EXPORT_SYMBOL(sptlrpc_process_config);
 
 static int logname2fsname(const char *logname, char *buf, int buflen)
 {
-       char   *ptr;
-       int     len;
+       char *ptr;
+       int len;
 
        ptr = strrchr(logname, '-');
        if (ptr == NULL || strcmp(ptr, "-sptlrpc")) {
@@ -692,7 +654,7 @@ static int logname2fsname(const char *logname, char *buf, int buflen)
 void sptlrpc_conf_log_update_begin(const char *logname)
 {
        struct sptlrpc_conf *conf;
-       char             fsname[16];
+       char fsname[16];
 
        if (logname2fsname(logname, fsname, sizeof(fsname)))
                return;
@@ -718,7 +680,7 @@ EXPORT_SYMBOL(sptlrpc_conf_log_update_begin);
 void sptlrpc_conf_log_update_end(const char *logname)
 {
        struct sptlrpc_conf *conf;
-       char             fsname[16];
+       char fsname[16];
 
        if (logname2fsname(logname, fsname, sizeof(fsname)))
                return;
@@ -743,7 +705,7 @@ EXPORT_SYMBOL(sptlrpc_conf_log_update_end);
 
 void sptlrpc_conf_log_start(const char *logname)
 {
-       char             fsname[16];
+       char fsname[16];
 
        if (logname2fsname(logname, fsname, sizeof(fsname)))
                return;
@@ -757,7 +719,7 @@ EXPORT_SYMBOL(sptlrpc_conf_log_start);
 void sptlrpc_conf_log_stop(const char *logname)
 {
        struct sptlrpc_conf *conf;
-       char             fsname[16];
+       char fsname[16];
 
        if (logname2fsname(logname, fsname, sizeof(fsname)))
                return;
@@ -801,10 +763,10 @@ void sptlrpc_conf_choose_flavor(enum lustre_sec_part from,
                                lnet_nid_t nid,
                                struct sptlrpc_flavor *sf)
 {
-       struct sptlrpc_conf     *conf;
+       struct sptlrpc_conf *conf;
        struct sptlrpc_conf_tgt *conf_tgt;
-       char                 name[MTI_NAME_MAXLEN];
-       int                   len, rc = 0;
+       char name[MTI_NAME_MAXLEN];
+       int len, rc = 0;
 
        target2fsname(target->uuid, name, sizeof(name));
 
@@ -838,20 +800,6 @@ out:
        flavor_set_flags(sf, from, to, 1);
 }
 
-/**
- * called by target devices, determine the expected flavor from
- * certain peer (from, nid).
- */
-void sptlrpc_target_choose_flavor(struct sptlrpc_rule_set *rset,
-                                 enum lustre_sec_part from,
-                                 lnet_nid_t nid,
-                                 struct sptlrpc_flavor *sf)
-{
-       if (sptlrpc_rule_set_choose(rset, from, LUSTRE_SP_ANY, nid, sf) == 0)
-               get_default_flavor(sf);
-}
-EXPORT_SYMBOL(sptlrpc_target_choose_flavor);
-
 #define SEC_ADAPT_DELAY         (10)
 
 /**
@@ -860,7 +808,7 @@ EXPORT_SYMBOL(sptlrpc_target_choose_flavor);
  */
 void sptlrpc_conf_client_adapt(struct obd_device *obd)
 {
-       struct obd_import  *imp;
+       struct obd_import *imp;
 
        LASSERT(strcmp(obd->obd_type->typ_name, LUSTRE_MDC_NAME) == 0 ||
                strcmp(obd->obd_type->typ_name, LUSTRE_OSC_NAME) == 0);
@@ -873,7 +821,7 @@ void sptlrpc_conf_client_adapt(struct obd_device *obd)
        if (imp) {
                spin_lock(&imp->imp_lock);
                if (imp->imp_sec)
-                       imp->imp_sec_expire = get_seconds() +
+                       imp->imp_sec_expire = ktime_get_real_seconds() +
                                SEC_ADAPT_DELAY;
                spin_unlock(&imp->imp_lock);
        }
@@ -882,7 +830,7 @@ void sptlrpc_conf_client_adapt(struct obd_device *obd)
 }
 EXPORT_SYMBOL(sptlrpc_conf_client_adapt);
 
-int  sptlrpc_conf_init(void)
+int sptlrpc_conf_init(void)
 {
        mutex_init(&sptlrpc_conf_lock);
        return 0;
@@ -890,7 +838,7 @@ int  sptlrpc_conf_init(void)
 
 void sptlrpc_conf_fini(void)
 {
-       struct sptlrpc_conf  *conf, *conf_next;
+       struct sptlrpc_conf *conf, *conf_next;
 
        mutex_lock(&sptlrpc_conf_lock);
        list_for_each_entry_safe(conf, conf_next, &sptlrpc_confs, sc_list) {