Whamcloud - gitweb
LU-3963 libcfs: cleanup list operations
[fs/lustre-release.git] / libcfs / libcfs / nidstrings.c
index b49376b..75b6ff3 100644 (file)
@@ -101,18 +101,18 @@ static int  libcfs_ip_str2addr(const char *str, int nob, __u32 *addr);
 static void libcfs_decnum_addr2str(__u32 addr, char *str);
 static void libcfs_hexnum_addr2str(__u32 addr, char *str);
 static int  libcfs_num_str2addr(const char *str, int nob, __u32 *addr);
-static int  libcfs_num_parse(char *str, int len, cfs_list_t *list);
-static int  libcfs_num_match(__u32 addr, cfs_list_t *list);
+static int  libcfs_num_parse(char *str, int len, struct list_head *list);
+static int  libcfs_num_match(__u32 addr, struct list_head *list);
 
 struct netstrfns {
-        int          nf_type;
-        char        *nf_name;
-        char        *nf_modname;
-        void       (*nf_addr2str)(__u32 addr, char *str);
-        int        (*nf_str2addr)(const char *str, int nob, __u32 *addr);
-        int        (*nf_parse_addrlist)(char *str, int len,
-                                        cfs_list_t *list);
-        int        (*nf_match_addr)(__u32 addr, cfs_list_t *list);
+       int      nf_type;
+       char    *nf_name;
+       char    *nf_modname;
+       void    (*nf_addr2str)(__u32 addr, char *str);
+       int     (*nf_str2addr)(const char *str, int nob, __u32 *addr);
+       int     (*nf_parse_addrlist)(char *str, int len,
+                                       struct list_head *list);
+       int     (*nf_match_addr)(__u32 addr, struct list_head *list);
 };
 
 static struct netstrfns  libcfs_netstrfns[] = {
@@ -587,41 +587,41 @@ libcfs_str2anynid(lnet_nid_t *nidp, const char *str)
  * One of this is created for each \<net\> parsed.
  */
 struct nidrange {
-        /**
-         * Link to list of this structures which is built on nid range
-         * list parsing.
-         */
-        cfs_list_t nr_link;
-        /**
-         * List head for addrrange::ar_link.
-         */
-        cfs_list_t nr_addrranges;
-        /**
-         * Flag indicating that *@<net> is found.
-         */
-        int nr_all;
-        /**
-         * Pointer to corresponding element of libcfs_netstrfns.
-         */
-        struct netstrfns *nr_netstrfns;
-        /**
-         * Number of network. E.g. 5 if \<net\> is "elan5".
-         */
-        int nr_netnum;
+       /**
+        * Link to list of this structures which is built on nid range
+        * list parsing.
+        */
+       struct list_head nr_link;
+       /**
+        * List head for addrrange::ar_link.
+        */
+       struct list_head nr_addrranges;
+       /**
+        * Flag indicating that *@<net> is found.
+        */
+       int nr_all;
+       /**
+        * Pointer to corresponding element of libcfs_netstrfns.
+        */
+       struct netstrfns *nr_netstrfns;
+       /**
+        * Number of network. E.g. 5 if \<net\> is "elan5".
+        */
+       int nr_netnum;
 };
 
 /**
  * Structure to represent \<addrrange\> token of the syntax.
  */
 struct addrrange {
-        /**
-         * Link to nidrange::nr_addrranges.
-         */
-        cfs_list_t ar_link;
-        /**
+       /**
+        * Link to nidrange::nr_addrranges.
+        */
+       struct list_head ar_link;
+       /**
         * List head for cfs_expr_list::el_list.
-         */
-        cfs_list_t ar_numaddr_ranges;
+        */
+       struct list_head ar_numaddr_ranges;
 };
 
 /**
@@ -633,14 +633,14 @@ struct addrrange {
  * \retval errno otherwise
  */
 static int
-libcfs_num_parse(char *str, int len, cfs_list_t *list)
+libcfs_num_parse(char *str, int len, struct list_head *list)
 {
        struct cfs_expr_list *el;
        int     rc;
 
        rc = cfs_expr_list_parse(str, len, 0, MAX_NUMERIC_VALUE, &el);
        if (rc == 0)
-               cfs_list_add_tail(&el->el_link, list);
+               list_add_tail(&el->el_link, list);
 
        return rc;
 }
@@ -657,22 +657,22 @@ libcfs_num_parse(char *str, int len, cfs_list_t *list)
 static int
 parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange)
 {
-        struct addrrange *addrrange;
+       struct addrrange *addrrange;
 
-        if (src->ls_len == 1 && src->ls_str[0] == '*') {
-                nidrange->nr_all = 1;
-                return 1;
-        }
+       if (src->ls_len == 1 && src->ls_str[0] == '*') {
+               nidrange->nr_all = 1;
+               return 1;
+       }
 
-        LIBCFS_ALLOC(addrrange, sizeof(struct addrrange));
-        if (addrrange == NULL)
-                return 0;
-        cfs_list_add_tail(&addrrange->ar_link, &nidrange->nr_addrranges);
-        CFS_INIT_LIST_HEAD(&addrrange->ar_numaddr_ranges);
+       LIBCFS_ALLOC(addrrange, sizeof(struct addrrange));
+       if (addrrange == NULL)
+               return 0;
+       list_add_tail(&addrrange->ar_link, &nidrange->nr_addrranges);
+       INIT_LIST_HEAD(&addrrange->ar_numaddr_ranges);
 
-        return nidrange->nr_netstrfns->nf_parse_addrlist(src->ls_str,
-                                                src->ls_len,
-                                                &addrrange->ar_numaddr_ranges);
+       return nidrange->nr_netstrfns->nf_parse_addrlist(src->ls_str,
+                                               src->ls_len,
+                                               &addrrange->ar_numaddr_ranges);
 }
 
 /**
@@ -687,7 +687,7 @@ parse_addrange(const struct cfs_lstr *src, struct nidrange *nidrange)
  */
 static struct nidrange *
 add_nidrange(const struct cfs_lstr *src,
-             cfs_list_t *nidlist)
+            struct list_head *nidlist)
 {
         struct netstrfns *nf;
         struct nidrange *nr;
@@ -713,24 +713,24 @@ add_nidrange(const struct cfs_lstr *src,
                         return NULL;
         }
 
-        cfs_list_for_each_entry(nr, nidlist, nr_link) {
-                if (nr->nr_netstrfns != nf)
-                        continue;
-                if (nr->nr_netnum != netnum)
-                        continue;
-                return nr;
-        }
+       list_for_each_entry(nr, nidlist, nr_link) {
+               if (nr->nr_netstrfns != nf)
+                       continue;
+               if (nr->nr_netnum != netnum)
+                       continue;
+               return nr;
+       }
 
-        LIBCFS_ALLOC(nr, sizeof(struct nidrange));
-        if (nr == NULL)
-                return NULL;
-        cfs_list_add_tail(&nr->nr_link, nidlist);
-        CFS_INIT_LIST_HEAD(&nr->nr_addrranges);
-        nr->nr_netstrfns = nf;
-        nr->nr_all = 0;
-        nr->nr_netnum = netnum;
+       LIBCFS_ALLOC(nr, sizeof(struct nidrange));
+       if (nr == NULL)
+               return NULL;
+       list_add_tail(&nr->nr_link, nidlist);
+       INIT_LIST_HEAD(&nr->nr_addrranges);
+       nr->nr_netstrfns = nf;
+       nr->nr_all = 0;
+       nr->nr_netnum = netnum;
 
-        return nr;
+       return nr;
 }
 
 /**
@@ -740,7 +740,7 @@ add_nidrange(const struct cfs_lstr *src,
  * \retval 0 otherwise
  */
 static int
-parse_nidrange(struct cfs_lstr *src, cfs_list_t *nidlist)
+parse_nidrange(struct cfs_lstr *src, struct list_head *nidlist)
 {
        struct cfs_lstr addrrange;
        struct cfs_lstr net;
@@ -776,15 +776,15 @@ parse_nidrange(struct cfs_lstr *src, cfs_list_t *nidlist)
  * \retval none
  */
 static void
-free_addrranges(cfs_list_t *list)
+free_addrranges(struct list_head *list)
 {
-       while (!cfs_list_empty(list)) {
+       while (!list_empty(list)) {
                struct addrrange *ar;
 
-               ar = cfs_list_entry(list->next, struct addrrange, ar_link);
+               ar = list_entry(list->next, struct addrrange, ar_link);
 
                cfs_expr_list_free_list(&ar->ar_numaddr_ranges);
-               cfs_list_del(&ar->ar_link);
+               list_del(&ar->ar_link);
                LIBCFS_FREE(ar, sizeof(struct addrrange));
        }
 }
@@ -798,17 +798,17 @@ free_addrranges(cfs_list_t *list)
  * \retval none
  */
 void
-cfs_free_nidlist(cfs_list_t *list)
+cfs_free_nidlist(struct list_head *list)
 {
-        cfs_list_t *pos, *next;
-        struct nidrange *nr;
-
-        cfs_list_for_each_safe(pos, next, list) {
-                nr = cfs_list_entry(pos, struct nidrange, nr_link);
-                free_addrranges(&nr->nr_addrranges);
-                cfs_list_del(pos);
-                LIBCFS_FREE(nr, sizeof(struct nidrange));
-        }
+       struct list_head *pos, *next;
+       struct nidrange *nr;
+
+       list_for_each_safe(pos, next, list) {
+               nr = list_entry(pos, struct nidrange, nr_link);
+               free_addrranges(&nr->nr_addrranges);
+               list_del(pos);
+               LIBCFS_FREE(nr, sizeof(struct nidrange));
+       }
 }
 
 /**
@@ -825,29 +825,29 @@ cfs_free_nidlist(cfs_list_t *list)
  * \retval 0 otherwise
  */
 int
-cfs_parse_nidlist(char *str, int len, cfs_list_t *nidlist)
+cfs_parse_nidlist(char *str, int len, struct list_head *nidlist)
 {
        struct cfs_lstr src;
        struct cfs_lstr res;
-        int rc;
-        ENTRY;
+       int rc;
+       ENTRY;
 
-        src.ls_str = str;
-        src.ls_len = len;
-        CFS_INIT_LIST_HEAD(nidlist);
-        while (src.ls_str) {
+       src.ls_str = str;
+       src.ls_len = len;
+       INIT_LIST_HEAD(nidlist);
+       while (src.ls_str) {
                rc = cfs_gettok(&src, ' ', &res);
-                if (rc == 0) {
-                        cfs_free_nidlist(nidlist);
-                        RETURN(0);
-                }
-                rc = parse_nidrange(&res, nidlist);
-                if (rc == 0) {
-                        cfs_free_nidlist(nidlist);
-                        RETURN(0);
-                }
-        }
-        RETURN(1);
+               if (rc == 0) {
+                       cfs_free_nidlist(nidlist);
+                       RETURN(0);
+               }
+               rc = parse_nidrange(&res, nidlist);
+               if (rc == 0) {
+                       cfs_free_nidlist(nidlist);
+                       RETURN(0);
+               }
+       }
+       RETURN(1);
 }
 
 /*
@@ -857,12 +857,12 @@ cfs_parse_nidlist(char *str, int len, cfs_list_t *nidlist)
  * \retval 0 otherwise
  */
 static int
-libcfs_num_match(__u32 addr, cfs_list_t *numaddr)
+libcfs_num_match(__u32 addr, struct list_head *numaddr)
 {
        struct cfs_expr_list *el;
 
-       LASSERT(!cfs_list_empty(numaddr));
-       el = cfs_list_entry(numaddr->next, struct cfs_expr_list, el_link);
+       LASSERT(!list_empty(numaddr));
+       el = list_entry(numaddr->next, struct cfs_expr_list, el_link);
 
        return cfs_expr_list_match(addr, el);
 }
@@ -875,25 +875,25 @@ libcfs_num_match(__u32 addr, cfs_list_t *numaddr)
  * \retval 1 on match
  * \retval 0  otherwises
  */
-int cfs_match_nid(lnet_nid_t nid, cfs_list_t *nidlist)
+int cfs_match_nid(lnet_nid_t nid, struct list_head *nidlist)
 {
-        struct nidrange *nr;
-        struct addrrange *ar;
-        ENTRY;
-
-        cfs_list_for_each_entry(nr, nidlist, nr_link) {
-                if (nr->nr_netstrfns->nf_type != LNET_NETTYP(LNET_NIDNET(nid)))
-                        continue;
-                if (nr->nr_netnum != LNET_NETNUM(LNET_NIDNET(nid)))
-                        continue;
-                if (nr->nr_all)
-                        RETURN(1);
-                cfs_list_for_each_entry(ar, &nr->nr_addrranges, ar_link)
-                        if (nr->nr_netstrfns->nf_match_addr(LNET_NIDADDR(nid),
-                                                       &ar->ar_numaddr_ranges))
-                                RETURN(1);
-        }
-        RETURN(0);
+       struct nidrange *nr;
+       struct addrrange *ar;
+       ENTRY;
+
+       list_for_each_entry(nr, nidlist, nr_link) {
+               if (nr->nr_netstrfns->nf_type != LNET_NETTYP(LNET_NIDNET(nid)))
+                       continue;
+               if (nr->nr_netnum != LNET_NETNUM(LNET_NIDNET(nid)))
+                       continue;
+               if (nr->nr_all)
+                       RETURN(1);
+               list_for_each_entry(ar, &nr->nr_addrranges, ar_link)
+                       if (nr->nr_netstrfns->nf_match_addr(LNET_NIDADDR(nid),
+                                                       &ar->ar_numaddr_ranges))
+                               RETURN(1);
+       }
+       RETURN(0);
 }
 
 #ifdef __KERNEL__