Whamcloud - gitweb
LU-8939 nodemap: remove deprecated lproc files 52/24352/8
authorKit Westneat <kit.westneat@gmail.com>
Fri, 4 Jan 2019 15:02:21 +0000 (10:02 -0500)
committerOleg Drokin <green@whamcloud.com>
Wed, 23 Jan 2019 09:19:36 +0000 (09:19 +0000)
Before the MGS was able to transfer the nodemap configuration to the
MDSes and OSSes, people had to use lproc interfaces in order to load
the configuration. This patch removes those deprecated interfaces.

Signed-off-by: Kit Westneat <kit.westneat@gmail.com>
Change-Id: I8c8f38755cf2870fbabca9e96d7d51a9ac290193
Reviewed-on: https://review.whamcloud.com/24352
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
config/lustre-build.m4
lnet/lnet/nidstrings.c
lustre/autoconf/lustre-core.m4
lustre/ptlrpc/nodemap_internal.h
lustre/ptlrpc/nodemap_lproc.c

index 7fec7bb..9110b4d 100644 (file)
@@ -597,7 +597,6 @@ LB_CONFIG_SERVERS
 # Tests depends from utils (multiop from liblustreapi)
 AS_IF([test "x$enable_utils" = xno], [enable_tests="no"])
 
 # Tests depends from utils (multiop from liblustreapi)
 AS_IF([test "x$enable_utils" = xno], [enable_tests="no"])
 
-m4_ifdef([LC_NODEMAP_PROC_DEBUG], [LC_NODEMAP_PROC_DEBUG])
 LIBCFS_CONFIG_CDEBUG
 LC_QUOTA
 
 LIBCFS_CONFIG_CDEBUG
 LC_QUOTA
 
index fe3add7..824bdf4 100644 (file)
@@ -451,256 +451,6 @@ int cfs_print_nidlist(char *buffer, int count, struct list_head *nidlist)
 }
 EXPORT_SYMBOL(cfs_print_nidlist);
 
 }
 EXPORT_SYMBOL(cfs_print_nidlist);
 
-/**
- * Determines minimum and maximum addresses for a single
- * numeric address range
- *
- * \param      ar
- * \param[out] *min_nid __u32 representation of min NID
- * \param[out] *max_nid __u32 representation of max NID
- * \retval     -EINVAL unsupported LNET range
- * \retval     -ERANGE non-contiguous LNET range
- */
-static int cfs_ip_ar_min_max(struct addrrange *ar, __u32 *min_nid,
-                             __u32 *max_nid)
-{
-       struct cfs_expr_list *expr_list;
-       struct cfs_range_expr *range;
-       unsigned int min_ip[4] = {0};
-       unsigned int max_ip[4] = {0};
-       int cur_octet = 0;
-       bool expect_full_octet = false;
-
-       list_for_each_entry(expr_list, &ar->ar_numaddr_ranges, el_link) {
-               int re_count = 0;
-
-               list_for_each_entry(range, &expr_list->el_exprs, re_link) {
-                       /* XXX: add support for multiple & non-contig. re's */
-                       if (re_count > 0)
-                               return -EINVAL;
-
-                       /* if a previous octet was ranged, then all remaining
-                        * octets must be full for contiguous range */
-                       if (expect_full_octet && (range->re_lo != 0 ||
-                                                 range->re_hi != 255))
-                               return -ERANGE;
-
-                       if (range->re_stride != 1)
-                               return -ERANGE;
-
-                       if (range->re_lo > range->re_hi)
-                               return -EINVAL;
-
-                       if (range->re_lo != range->re_hi)
-                               expect_full_octet = true;
-
-                       min_ip[cur_octet] = range->re_lo;
-                       max_ip[cur_octet] = range->re_hi;
-
-                       re_count++;
-               }
-
-               cur_octet++;
-       }
-
-       if (min_nid != NULL)
-               *min_nid = ((min_ip[0] << 24) | (min_ip[1] << 16) |
-                           (min_ip[2] << 8) | min_ip[3]);
-
-       if (max_nid != NULL)
-               *max_nid = ((max_ip[0] << 24) | (max_ip[1] << 16) |
-                           (max_ip[2] << 8) | max_ip[3]);
-
-       return 0;
-}
-
-/**
- * Determines minimum and maximum addresses for a single
- * numeric address range
- *
- * \param      ar
- * \param[out] *min_nid __u32 representation of min NID
- * \param[out] *max_nid __u32 representation of max NID
- * \retval     -EINVAL unsupported LNET range
- */
-static int cfs_num_ar_min_max(struct addrrange *ar, __u32 *min_nid,
-                              __u32 *max_nid)
-{
-       struct cfs_expr_list *el;
-       struct cfs_range_expr *re;
-       unsigned int min_addr = 0;
-       unsigned int max_addr = 0;
-
-       list_for_each_entry(el, &ar->ar_numaddr_ranges, el_link) {
-               int re_count = 0;
-
-               list_for_each_entry(re, &el->el_exprs, re_link) {
-                       if (re_count > 0)
-                               return -EINVAL;
-                       if (re->re_lo > re->re_hi)
-                               return -EINVAL;
-
-                       if (re->re_lo < min_addr || min_addr == 0)
-                               min_addr = re->re_lo;
-                       if (re->re_hi > max_addr)
-                               max_addr = re->re_hi;
-
-                       re_count++;
-               }
-       }
-
-       if (min_nid != NULL)
-               *min_nid = min_addr;
-       if (max_nid != NULL)
-               *max_nid = max_addr;
-
-       return 0;
-}
-
-/**
- * Takes a linked list of nidrange expressions, determines the minimum
- * and maximum nid and creates appropriate nid structures
- *
- * \param[out] *min_nid string representation of min NID
- * \param[out] *max_nid string representation of max NID
- * \retval     -EINVAL unsupported LNET range
- * \retval     -ERANGE non-contiguous LNET range
- */
-int cfs_nidrange_find_min_max(struct list_head *nidlist, char *min_nid,
-                             char *max_nid, size_t nidstr_length)
-{
-       struct nidrange *first_nidrange;
-       int netnum;
-       struct netstrfns *nf;
-       char *lndname;
-       __u32 min_addr;
-       __u32 max_addr;
-       char min_addr_str[IPSTRING_LENGTH];
-       char max_addr_str[IPSTRING_LENGTH];
-       int rc;
-
-       first_nidrange = list_entry(nidlist->next, struct nidrange, nr_link);
-
-       netnum = first_nidrange->nr_netnum;
-       nf = first_nidrange->nr_netstrfns;
-       lndname = nf->nf_name;
-
-       rc = nf->nf_min_max(nidlist, &min_addr, &max_addr);
-       if (rc < 0)
-               return rc;
-
-       nf->nf_addr2str(min_addr, min_addr_str, sizeof(min_addr_str));
-       nf->nf_addr2str(max_addr, max_addr_str, sizeof(max_addr_str));
-
-       snprintf(min_nid, nidstr_length, "%s@%s%d", min_addr_str, lndname,
-                netnum);
-       snprintf(max_nid, nidstr_length, "%s@%s%d", max_addr_str, lndname,
-                netnum);
-
-       return 0;
-}
-EXPORT_SYMBOL(cfs_nidrange_find_min_max);
-
-/**
- * Determines the min and max NID values for num LNDs
- *
- * \param      *nidlist
- * \param[out] *min_nid if provided, returns string representation of min NID
- * \param[out] *max_nid if provided, returns string representation of max NID
- * \retval     -EINVAL unsupported LNET range
- * \retval     -ERANGE non-contiguous LNET range
- */
-static int cfs_num_min_max(struct list_head *nidlist, __u32 *min_nid,
-                           __u32 *max_nid)
-{
-       struct nidrange *nr;
-       struct addrrange *ar;
-       unsigned int tmp_min_addr = 0;
-       unsigned int tmp_max_addr = 0;
-       unsigned int min_addr = 0;
-       unsigned int max_addr = 0;
-       int nidlist_count = 0;
-       int rc;
-
-       list_for_each_entry(nr, nidlist, nr_link) {
-               if (nidlist_count > 0)
-                       return -EINVAL;
-
-               list_for_each_entry(ar, &nr->nr_addrranges, ar_link) {
-                       rc = cfs_num_ar_min_max(ar, &tmp_min_addr,
-                                               &tmp_max_addr);
-                       if (rc < 0)
-                               return rc;
-
-                       if (tmp_min_addr < min_addr || min_addr == 0)
-                               min_addr = tmp_min_addr;
-                       if (tmp_max_addr > max_addr)
-                               max_addr = tmp_min_addr;
-               }
-       }
-       if (max_nid != NULL)
-               *max_nid = max_addr;
-       if (min_nid != NULL)
-               *min_nid = min_addr;
-
-       return 0;
-}
-
-/**
- * Takes an nidlist and determines the minimum and maximum
- * ip addresses.
- *
- * \param      *nidlist
- * \param[out] *min_nid if provided, returns string representation of min NID
- * \param[out] *max_nid if provided, returns string representation of max NID
- * \retval     -EINVAL unsupported LNET range
- * \retval     -ERANGE non-contiguous LNET range
- */
-static int cfs_ip_min_max(struct list_head *nidlist, __u32 *min_nid,
-                          __u32 *max_nid)
-{
-       struct nidrange *nr;
-       struct addrrange *ar;
-       __u32 tmp_min_ip_addr = 0;
-       __u32 tmp_max_ip_addr = 0;
-       __u32 min_ip_addr = 0;
-       __u32 max_ip_addr = 0;
-       int nidlist_count = 0;
-       int rc;
-
-       list_for_each_entry(nr, nidlist, nr_link) {
-               if (nidlist_count > 0)
-                       return -EINVAL;
-
-               if (nr->nr_all) {
-                       min_ip_addr = 0;
-                       max_ip_addr = 0xffffffff;
-                       break;
-               }
-
-               list_for_each_entry(ar, &nr->nr_addrranges, ar_link) {
-                       rc = cfs_ip_ar_min_max(ar, &tmp_min_ip_addr,
-                                              &tmp_max_ip_addr);
-                       if (rc < 0)
-                               return rc;
-
-                       if (tmp_min_ip_addr < min_ip_addr || min_ip_addr == 0)
-                               min_ip_addr = tmp_min_ip_addr;
-                       if (tmp_max_ip_addr > max_ip_addr)
-                               max_ip_addr = tmp_max_ip_addr;
-               }
-
-               nidlist_count++;
-       }
-
-       if (max_nid != NULL)
-               *max_nid = max_ip_addr;
-       if (min_nid != NULL)
-               *min_nid = min_ip_addr;
-
-       return 0;
-}
-
 static int
 libcfs_lo_str2addr(const char *str, int nob, __u32 *addr)
 {
 static int
 libcfs_lo_str2addr(const char *str, int nob, __u32 *addr)
 {
@@ -908,8 +658,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_lo_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
          .nf_str2addr          = libcfs_lo_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
-         .nf_match_addr        = libcfs_num_match,
-         .nf_min_max           = cfs_num_min_max },
+         .nf_match_addr        = libcfs_num_match
+       },
        { .nf_type              = SOCKLND,
          .nf_name              = "tcp",
          .nf_modname           = "ksocklnd",
        { .nf_type              = SOCKLND,
          .nf_name              = "tcp",
          .nf_modname           = "ksocklnd",
@@ -917,8 +667,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
-         .nf_match_addr        = cfs_ip_addr_match,
-         .nf_min_max           = cfs_ip_min_max },
+         .nf_match_addr        = cfs_ip_addr_match
+       },
        { .nf_type              = O2IBLND,
          .nf_name              = "o2ib",
          .nf_modname           = "ko2iblnd",
        { .nf_type              = O2IBLND,
          .nf_name              = "o2ib",
          .nf_modname           = "ko2iblnd",
@@ -926,8 +676,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
-         .nf_match_addr        = cfs_ip_addr_match,
-         .nf_min_max           = cfs_ip_min_max },
+         .nf_match_addr        = cfs_ip_addr_match
+       },
        { .nf_type              = GNILND,
          .nf_name              = "gni",
          .nf_modname           = "kgnilnd",
        { .nf_type              = GNILND,
          .nf_name              = "gni",
          .nf_modname           = "kgnilnd",
@@ -935,8 +685,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_num_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
          .nf_str2addr          = libcfs_num_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
-         .nf_match_addr        = libcfs_num_match,
-         .nf_min_max           = cfs_num_min_max },
+         .nf_match_addr        = libcfs_num_match
+       },
        { .nf_type              = GNIIPLND,
          .nf_name              = "gip",
          .nf_modname           = "kgnilnd",
        { .nf_type              = GNIIPLND,
          .nf_name              = "gip",
          .nf_modname           = "kgnilnd",
@@ -944,8 +694,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
          .nf_str2addr          = libcfs_ip_str2addr,
          .nf_parse_addrlist    = cfs_ip_addr_parse,
          .nf_print_addrlist    = libcfs_ip_addr_range_print,
-         .nf_match_addr        = cfs_ip_addr_match,
-         .nf_min_max           = cfs_ip_min_max },
+         .nf_match_addr        = cfs_ip_addr_match
+       },
        { .nf_type              = PTL4LND,
          .nf_name              = "ptlf",
          .nf_modname           = "kptl4lnd",
        { .nf_type              = PTL4LND,
          .nf_name              = "ptlf",
          .nf_modname           = "kptl4lnd",
@@ -953,8 +703,8 @@ static struct netstrfns libcfs_netstrfns[] = {
          .nf_str2addr          = libcfs_num_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
          .nf_str2addr          = libcfs_num_str2addr,
          .nf_parse_addrlist    = libcfs_num_parse,
          .nf_print_addrlist    = libcfs_num_addr_range_print,
-         .nf_match_addr        = libcfs_num_match,
-         .nf_min_max           = cfs_num_min_max},
+         .nf_match_addr        = libcfs_num_match
+       },
 };
 
 static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns);
 };
 
 static const size_t libcfs_nnetstrfns = ARRAY_SIZE(libcfs_netstrfns);
index 227fd38..493e4e2 100644 (file)
@@ -3336,23 +3336,6 @@ AS_IF([test "x$enable_quota" != xno -a "x$enable_utils" != xno], [
 ]) # LC_QUOTA
 
 #
 ]) # LC_QUOTA
 
 #
-# LC_CONFIG_NODEMAP_PROC_DEBUG
-#
-# enable nodemap proc file debugging
-#
-AC_DEFUN([LC_NODEMAP_PROC_DEBUG], [
-AC_MSG_CHECKING([whether to enable nodemap proc debug])
-AC_ARG_ENABLE([nodemap_proc_debug],
-       AC_HELP_STRING([--enable-nodemap-proc-debug],
-               [enable nodemap proc debug]),
-       [], [enable_nodemap_proc_debug="no"])
-AC_MSG_RESULT([$enable_nodemap_proc_debug])
-AS_IF([test "x$enable_nodemap_proc_debug" != xno],
-       [AC_DEFINE(NODEMAP_PROC_DEBUG, 1,
-               [enable nodemap proc debug support])])
-]) # LC_NODEMAP_PROC_DEBUG
-
-#
 # LC_OSD_ADDON
 #
 # configure support for optional OSD implementation
 # LC_OSD_ADDON
 #
 # configure support for optional OSD implementation
index 6d6b9d7..4b8312e 100644 (file)
 
 #define DEFAULT_NODEMAP "default"
 
 
 #define DEFAULT_NODEMAP "default"
 
-/* Turn on proc debug interface to allow OSS and
- * MDS nodes to configure nodemap independently of
- * MGS (since the nodemap distribution is not written
- * yet */
-#define NODEMAP_PROC_DEBUG 1
-
 /* Default nobody uid and gid values */
 
 #define NODEMAP_NOBODY_UID 99
 /* Default nobody uid and gid values */
 
 #define NODEMAP_NOBODY_UID 99
index 29ba26b..d0858d1 100644 (file)
@@ -568,609 +568,20 @@ static int nodemap_audit_mode_seq_show(struct seq_file *m, void *data)
        return 0;
 }
 
        return 0;
 }
 
-#ifdef NODEMAP_PROC_DEBUG
-/**
- * Helper functions to set nodemap flags.
- *
- * \param[in] buffer    string, which is "1" or "0" to set/unset flag
- * \param[in] count     \a buffer length
- * \param[out] flag_p  where to store flag value
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static int nodemap_proc_read_flag(const char __user *buffer,
-                                 unsigned long count, unsigned int *flag_p)
-{
-       char                    scratch[NODEMAP_LPROC_FLAG_LEN + 1];
-       long unsigned int       flag_buf;
-       int                     rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(scratch))
-               return -EINVAL;
-
-       if (copy_from_user(scratch, buffer, count))
-               return -EFAULT;
-
-       scratch[count] = '\0';
-       rc = kstrtoul(scratch, 10, &flag_buf);
-       if (rc != 0)
-               return -EINVAL;
-
-       *flag_p = flag_buf;
-
-       return count;
-}
-
-/**
- * Set the squash UID.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string representing squash UID to set
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-nodemap_squash_uid_seq_write(struct file *file, const char __user *buffer,
-                            size_t count, loff_t *off)
-{
-       char                     squash[NODEMAP_LPROC_ID_LEN + 1];
-       struct seq_file         *m = file->private_data;
-       long unsigned int        squash_uid;
-       int                      rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(squash))
-               return -EINVAL;
-
-       if (copy_from_user(squash, buffer, count))
-               return -EFAULT;
-
-       squash[count] = '\0';
-       rc = kstrtoul(squash, 10, &squash_uid);
-       if (rc != 0)
-               return -EINVAL;
-
-       rc = nodemap_set_squash_uid(m->private, squash_uid);
-       if (rc != 0)
-               return rc;
-
-       return count;
-}
-
-/**
- * Set the squash GID.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string representing squash GID to set
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-nodemap_squash_gid_seq_write(struct file *file, const char __user *buffer,
-                            size_t count, loff_t *off)
-{
-       char                     squash[NODEMAP_LPROC_ID_LEN + 1];
-       struct seq_file         *m = file->private_data;
-       long unsigned int        squash_gid;
-       int                      rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(squash))
-               return -EINVAL;
-
-       if (copy_from_user(squash, buffer, count))
-               return -EFAULT;
-
-       squash[count] = '\0';
-       rc = kstrtoul(squash, 10, &squash_gid);
-       if (rc != 0)
-               return -EINVAL;
-
-       rc = nodemap_set_squash_gid(m->private, squash_gid);
-       if (rc != 0)
-               return rc;
-
-       return count;
-}
-
-/**
- * Set/unset the trusted flag.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "1" or "0"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-nodemap_trusted_seq_write(struct file *file, const char __user *buffer,
-                         size_t count, loff_t *off)
-{
-       struct seq_file         *m = file->private_data;
-       int                     flags;
-       int                     rc;
-
-       rc = nodemap_proc_read_flag(buffer, count, &flags);
-       if (rc < 0)
-               return rc;
-
-       rc = nodemap_set_trust_client_ids(m->private, flags);
-       if (rc != 0)
-               return rc;
-
-       return count;
-}
-
-/**
- * Set/unset the admin flag.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "1" or "0"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-nodemap_admin_seq_write(struct file *file, const char __user *buffer,
-                       size_t count, loff_t *off)
-{
-       struct seq_file         *m = file->private_data;
-       int                     flags;
-       int                     rc;
-
-       rc = nodemap_proc_read_flag(buffer, count, &flags);
-       if (rc < 0)
-               return rc;
-
-       rc = nodemap_set_allow_root(m->private, flags);
-       if (rc != 0)
-               return rc;
-
-       return count;
-}
-
-/**
- * Add a nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, name of the nodemap to add
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_add_nodemap_seq_write(struct file *file, const char __user *buffer,
-                             size_t count, loff_t *off)
-{
-       char    nodemap_name[LUSTRE_NODEMAP_NAME_LENGTH + 1];
-       char    *cpybuf = NULL;
-       char    *pos;
-       int     rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(nodemap_name))
-               return -EINVAL;
-
-       if (copy_from_user(nodemap_name, buffer, count))
-               return -EFAULT;
-
-       nodemap_name[count] = '\0';
-
-       cpybuf = nodemap_name;
-       pos = strsep(&cpybuf, " \n");
-       if (pos == NULL)
-               return -EINVAL;
-
-       rc = nodemap_add(nodemap_name);
-       if (rc == 0)
-               rc = count;
-
-       return rc;
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, add_nodemap);
-
-/**
- * Delete a nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, name of the nodemap to delete
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_del_nodemap_seq_write(struct file *file, const char __user *buffer,
-                             size_t count, loff_t *off)
-{
-       char    nodemap_name[LUSTRE_NODEMAP_NAME_LENGTH + 1];
-       char    *cpybuf = NULL;
-       char    *pos;
-       int     rc = count;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(nodemap_name))
-               return -EINVAL;
-
-       if (copy_from_user(nodemap_name, buffer, count))
-               return -EFAULT;
-
-       nodemap_name[count] = '\0';
-
-       cpybuf = nodemap_name;
-       pos = strsep(&cpybuf, " \n");
-       if (pos == NULL)
-               return -EINVAL;
-
-       rc = nodemap_del(nodemap_name);
-       if (rc == 0)
-               rc = count;
-
-       return rc;
-
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, del_nodemap);
-
-/**
- * Helper function to parse a NID string.
- *
- * \param[in] rangestr string representation of NIDs, see libcfs_str2nid()
- * \param[out] nids    array of two nids
- * \retval              0 on success
- * \retval              negative number on error
- */
-static int parse_nids(char *rangestr, lnet_nid_t nids[2])
-{
-       struct list_head        nidlist;
-       char                    nidstr[2][LNET_NIDSTR_SIZE];
-       char                    nidrange_str[2 * LNET_NIDSTR_SIZE + 2];
-       int                     rc = 0;
-
-       INIT_LIST_HEAD(&nidlist);
-
-       if (cfs_parse_nidlist(rangestr, strlen(rangestr),
-           &nidlist) <= 0)
-               return -EINVAL;
-
-       rc = cfs_nidrange_find_min_max(&nidlist, nidstr[0], nidstr[1],
-                                      LNET_NIDSTR_SIZE);
-       if (rc < 0)
-               return rc;
-
-       snprintf(nidrange_str, sizeof(nidrange_str), "%s:%s",
-               nidstr[0], nidstr[1]);
-
-       rc = nodemap_parse_range(nidrange_str, nids);
-       if (rc != 0)
-               return -EINVAL;
-
-       cfs_free_nidlist(&nidlist);
-
-       return 0;
-}
-
-/**
- * Add a NID range to nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "<nodemap name> <nid range>"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_add_nodemap_range_seq_write(struct file *file,
-                                   const char __user *buffer,
-                                   size_t count, loff_t *off)
-{
-       char                    name_range[LUSTRE_NODEMAP_NAME_LENGTH +
-                                          LNET_NIDSTR_SIZE * 2 + 2];
-       char                    *cpybuf = NULL;
-       char                    *name;
-       char                    *rangestr = NULL;
-       lnet_nid_t              nids[2];
-       int                     rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(name_range))
-               GOTO(out, rc = -EINVAL);
-
-       if (copy_from_user(name_range, buffer, count))
-               GOTO(out, rc = -EFAULT);
-
-       name_range[count] = '\0';
-
-       cpybuf = name_range;
-       name = strsep(&cpybuf, " ");
-       if (name == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rangestr = strsep(&cpybuf, " \n");
-       if (rangestr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rc = parse_nids(rangestr, nids);
-       if (rc != 0)
-               GOTO(out, rc = rc);
-
-       rc = nodemap_add_range(name, nids);
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (rc == 0)
-               rc = count;
-
-out:
-       return rc;
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, add_nodemap_range);
-
-/**
- * Delete a NID range from nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "<nodemap name> <nid range>"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_del_nodemap_range_seq_write(struct file *file,
-                                   const char __user *buffer,
-                                   size_t count, loff_t *off)
-{
-       char                    name_range[LUSTRE_NODEMAP_NAME_LENGTH +
-                                          LNET_NIDSTR_SIZE * 2 + 2];
-       char                    *cpybuf = NULL;
-       char                    *name;
-       char                    *rangestr = NULL;
-       lnet_nid_t              nids[2];
-       int                     rc;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(name_range))
-               GOTO(out, rc = -EINVAL);
-
-       if (copy_from_user(name_range, buffer, count))
-               GOTO(out, rc = -EFAULT);
-
-       name_range[count] = '\0';
-
-       cpybuf = name_range;
-       name = strsep(&cpybuf, " ");
-       if (name == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rangestr = strsep(&cpybuf, " \n");
-       if (rangestr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rc = parse_nids(rangestr, nids);
-       if (rc != 0)
-               GOTO(out, rc = rc);
-
-       rc = nodemap_del_range(name, nids);
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (rc == 0)
-               rc = count;
-
-out:
-       return rc;
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, del_nodemap_range);
-
-/**
- * Add an idmap to nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "<nodemap name> <uid|gid> <idmap>"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_add_nodemap_idmap_seq_write(struct file *file,
-                                   const char __user *buffer,
-                                   size_t count, loff_t *off)
-{
-       char                    name_idmapstr[LUSTRE_NODEMAP_NAME_LENGTH + 16];
-       char                    *cpybuf = NULL;
-       char                    *name;
-       char                    *idtypestr = NULL;
-       char                    *idmapstr = NULL;
-       __u32                   idmap[2];
-       int                     rc = count;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(name_idmapstr))
-               GOTO(out, rc = -EINVAL);
-
-       if (copy_from_user(name_idmapstr, buffer, count))
-               GOTO(out, rc = -EFAULT);
-
-       name_idmapstr[count] = '\0';
-
-       cpybuf = name_idmapstr;
-       name = strsep(&cpybuf, " ");
-       if (name == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       idtypestr = strsep(&cpybuf, " ");
-       if (idtypestr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       idmapstr = strsep(&cpybuf, " \n");
-       if (idmapstr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rc = nodemap_parse_idmap(idmapstr, idmap);
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (strcmp(idtypestr, "uid") == 0)
-               rc = nodemap_add_idmap(name, NODEMAP_UID, idmap);
-       else if (strcmp(idtypestr, "gid") == 0)
-               rc = nodemap_add_idmap(name, NODEMAP_GID, idmap);
-       else
-               GOTO(out, rc = -EINVAL);
-
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (rc == 0)
-               rc = count;
-
-out:
-       return rc;
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, add_nodemap_idmap);
-
-/**
- * Delete an idmap from nodemap.
- *
- * \param[in] file      proc file
- * \param[in] buffer    string, "<nodemap name> <uid|gid> <idmap>"
- * \param[in] count     \a buffer length
- * \param[in] off       unused
- * \retval              \a count on success
- * \retval              negative number on error
- */
-static ssize_t
-lprocfs_del_nodemap_idmap_seq_write(struct file *file,
-                                   const char __user *buffer,
-                                   size_t count, loff_t *off)
-{
-       char                    name_idmapstr[LUSTRE_NODEMAP_NAME_LENGTH + 16];
-       char                    *cpybuf = NULL;
-       char                    *name;
-       char                    *idtypestr = NULL;
-       char                    *idmapstr = NULL;
-       __u32                   idmap[2];
-       int                     rc = count;
-
-       if (count == 0)
-               return 0;
-
-       if (count >= sizeof(name_idmapstr))
-               GOTO(out, rc = -EINVAL);
-
-       if (copy_from_user(name_idmapstr, buffer, count))
-               GOTO(out, rc = -EFAULT);
-
-       name_idmapstr[count] = '\0';
-
-       cpybuf = name_idmapstr;
-       name = strsep(&cpybuf, " ");
-       if (name == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       idtypestr = strsep(&cpybuf, " ");
-       if (idtypestr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       idmapstr = strsep(&cpybuf, " \n");
-       if (idmapstr == NULL)
-               GOTO(out, rc = -EINVAL);
-
-       rc = nodemap_parse_idmap(idmapstr, idmap);
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (strcmp(idtypestr, "uid") == 0)
-               rc = nodemap_del_idmap(name, NODEMAP_UID, idmap);
-       else if (strcmp(idtypestr, "gid") == 0)
-               rc = nodemap_del_idmap(name, NODEMAP_GID, idmap);
-       else
-               GOTO(out, rc = -EINVAL);
-
-       if (rc != 0)
-               GOTO(out, rc = -EINVAL);
-
-       if (rc == 0)
-               rc = count;
-
-out:
-       return rc;
-}
-LPROC_SEQ_FOPS_WR_ONLY(nodemap, del_nodemap_idmap);
-#endif /* NODEMAP_PROC_DEBUG */
-
 static struct lprocfs_vars lprocfs_nm_module_vars[] = {
        {
                .name           = "active",
                .fops           = &nodemap_active_fops,
        },
 static struct lprocfs_vars lprocfs_nm_module_vars[] = {
        {
                .name           = "active",
                .fops           = &nodemap_active_fops,
        },
-#ifdef NODEMAP_PROC_DEBUG
-       {
-               .name           = "add_nodemap",
-               .fops           = &nodemap_add_nodemap_fops,
-       },
-       {
-               .name           = "remove_nodemap",
-               .fops           = &nodemap_del_nodemap_fops,
-       },
-       {
-               .name           = "add_nodemap_range",
-               .fops           = &nodemap_add_nodemap_range_fops,
-       },
-       {
-               .name           = "del_nodemap_range",
-               .fops           = &nodemap_del_nodemap_range_fops,
-       },
-       {
-               .name           = "add_nodemap_idmap",
-               .fops           = &nodemap_add_nodemap_idmap_fops,
-       },
-       {
-               .name           = "del_nodemap_idmap",
-               .fops           = &nodemap_del_nodemap_idmap_fops,
-       },
-#endif /* NODEMAP_PROC_DEBUG */
        {
                NULL
        }
 };
 
        {
                NULL
        }
 };
 
-#ifdef NODEMAP_PROC_DEBUG
-LPROC_SEQ_FOPS(nodemap_trusted);
-LPROC_SEQ_FOPS(nodemap_admin);
-LPROC_SEQ_FOPS(nodemap_squash_uid);
-LPROC_SEQ_FOPS(nodemap_squash_gid);
-#else
 LPROC_SEQ_FOPS_RO(nodemap_trusted);
 LPROC_SEQ_FOPS_RO(nodemap_admin);
 LPROC_SEQ_FOPS_RO(nodemap_squash_uid);
 LPROC_SEQ_FOPS_RO(nodemap_squash_gid);
 LPROC_SEQ_FOPS_RO(nodemap_trusted);
 LPROC_SEQ_FOPS_RO(nodemap_admin);
 LPROC_SEQ_FOPS_RO(nodemap_squash_uid);
 LPROC_SEQ_FOPS_RO(nodemap_squash_gid);
-#endif
 
 LPROC_SEQ_FOPS_RO(nodemap_deny_unknown);
 LPROC_SEQ_FOPS_RO(nodemap_map_mode);
 
 LPROC_SEQ_FOPS_RO(nodemap_deny_unknown);
 LPROC_SEQ_FOPS_RO(nodemap_map_mode);