Whamcloud - gitweb
LU-17431 ptlrpc: move nodemap related ioctls to ptlrpc
[fs/lustre-release.git] / lustre / mgs / mgs_llog.c
index 20887d4..ea349b4 100644 (file)
@@ -5648,219 +5648,6 @@ out:
        return rc;
 }
 
-int mgs_nodemap_cmd(const struct lu_env *env, struct mgs_device *mgs,
-                   enum lcfg_command_type cmd, const char *nodemap_name,
-                   char *param)
-{
-       struct lnet_nid nid[2];
-       u32 idmap[2];
-       bool bool_switch;
-       u8 netmask = 0;
-       u32 int_id;
-       int rc = 0;
-
-       ENTRY;
-       switch (cmd) {
-       case LCFG_NODEMAP_ADD:
-               rc = nodemap_add(nodemap_name);
-               break;
-       case LCFG_NODEMAP_DEL:
-               rc = nodemap_del(nodemap_name);
-               break;
-       case LCFG_NODEMAP_ADD_RANGE:
-               rc = nodemap_parse_range(param, nid, &netmask);
-               if (rc != 0)
-                       break;
-               rc = nodemap_add_range(nodemap_name, nid, netmask);
-               break;
-       case LCFG_NODEMAP_DEL_RANGE:
-               rc = nodemap_parse_range(param, nid, &netmask);
-               if (rc != 0)
-                       break;
-               rc = nodemap_del_range(nodemap_name, nid, netmask);
-               break;
-       case LCFG_NODEMAP_ADMIN:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc)
-                       break;
-               rc = nodemap_set_allow_root(nodemap_name, bool_switch);
-               break;
-       case LCFG_NODEMAP_DENY_UNKNOWN:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc)
-                       break;
-               rc = nodemap_set_deny_unknown(nodemap_name, bool_switch);
-               break;
-       case LCFG_NODEMAP_AUDIT_MODE:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc == 0)
-                       rc = nodemap_set_audit_mode(nodemap_name, bool_switch);
-               break;
-       case LCFG_NODEMAP_FORBID_ENCRYPT:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc == 0)
-                       rc = nodemap_set_forbid_encryption(nodemap_name,
-                                                          bool_switch);
-               break;
-       case LCFG_NODEMAP_READONLY_MOUNT:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc == 0)
-                       rc = nodemap_set_readonly_mount(nodemap_name,
-                                                       bool_switch);
-               break;
-       case LCFG_NODEMAP_MAP_MODE:
-       {
-               char *p;
-               __u8 map_mode = 0;
-
-               if ((p = strstr(param, "all")) != NULL) {
-                       if ((p == param || *(p-1) == ',') &&
-                           (*(p+3) == '\0' || *(p+3) == ',')) {
-                               map_mode = NODEMAP_MAP_ALL;
-                       } else {
-                               rc = -EINVAL;
-                               break;
-                       }
-               } else {
-                       while ((p = strsep(&param, ",")) != NULL) {
-                               if (!*p)
-                                       break;
-
-                               if (strcmp("both", p) == 0)
-                                       map_mode |= NODEMAP_MAP_BOTH;
-                               else if (strcmp("uid_only", p) == 0 ||
-                                        strcmp("uid", p) == 0)
-                                       map_mode |= NODEMAP_MAP_UID;
-                               else if (strcmp("gid_only", p) == 0 ||
-                                        strcmp("gid", p) == 0)
-                                       map_mode |= NODEMAP_MAP_GID;
-                               else if (strcmp("projid_only", p) == 0 ||
-                                        strcmp("projid", p) == 0)
-                                       map_mode |= NODEMAP_MAP_PROJID;
-                               else
-                                       break;
-                       }
-                       if (p) {
-                               rc = -EINVAL;
-                               break;
-                       }
-               }
-
-               rc = nodemap_set_mapping_mode(nodemap_name, map_mode);
-               break;
-       }
-       case LCFG_NODEMAP_RBAC:
-       {
-               enum nodemap_rbac_roles rbac;
-               char *p;
-
-               if (strcmp(param, "all") == 0) {
-                       rbac = NODEMAP_RBAC_ALL;
-               } else if (strcmp(param, "none") == 0) {
-                       rbac = NODEMAP_RBAC_NONE;
-               } else {
-                       rbac = NODEMAP_RBAC_NONE;
-                       while ((p = strsep(&param, ",")) != NULL) {
-                               int i;
-
-                               if (!*p)
-                                       break;
-
-                               for (i = 0; i < ARRAY_SIZE(nodemap_rbac_names);
-                                    i++) {
-                                       if (strcmp(p,
-                                                nodemap_rbac_names[i].nrn_name)
-                                           == 0) {
-                                               rbac |=
-                                                nodemap_rbac_names[i].nrn_mode;
-                                               break;
-                                       }
-                               }
-                               if (i == ARRAY_SIZE(nodemap_rbac_names))
-                                       break;
-                       }
-                       if (p) {
-                               rc = -EINVAL;
-                               break;
-                       }
-               }
-
-               rc = nodemap_set_rbac(nodemap_name, rbac);
-               break;
-       }
-       case LCFG_NODEMAP_TRUSTED:
-               rc = kstrtobool(param, &bool_switch);
-               if (rc)
-                       break;
-               rc = nodemap_set_trust_client_ids(nodemap_name, bool_switch);
-               break;
-       case LCFG_NODEMAP_SQUASH_UID:
-               rc = kstrtouint(param, 10, &int_id);
-               if (rc)
-                       break;
-               rc = nodemap_set_squash_uid(nodemap_name, int_id);
-               break;
-       case LCFG_NODEMAP_SQUASH_GID:
-               rc = kstrtouint(param, 10, &int_id);
-               if (rc)
-                       break;
-               rc = nodemap_set_squash_gid(nodemap_name, int_id);
-               break;
-       case LCFG_NODEMAP_SQUASH_PROJID:
-               rc = kstrtouint(param, 10, &int_id);
-               if (rc)
-                       break;
-               rc = nodemap_set_squash_projid(nodemap_name, int_id);
-               break;
-       case LCFG_NODEMAP_ADD_UIDMAP:
-       case LCFG_NODEMAP_ADD_GIDMAP:
-       case LCFG_NODEMAP_ADD_PROJIDMAP:
-               rc = nodemap_parse_idmap(param, idmap);
-               if (rc != 0)
-                       break;
-               if (cmd == LCFG_NODEMAP_ADD_UIDMAP)
-                       rc = nodemap_add_idmap(nodemap_name, NODEMAP_UID,
-                                              idmap);
-               else if (cmd == LCFG_NODEMAP_ADD_GIDMAP)
-                       rc = nodemap_add_idmap(nodemap_name, NODEMAP_GID,
-                                              idmap);
-               else if (cmd == LCFG_NODEMAP_ADD_PROJIDMAP)
-                       rc = nodemap_add_idmap(nodemap_name, NODEMAP_PROJID,
-                                              idmap);
-               else
-                       rc = -EINVAL;
-               break;
-       case LCFG_NODEMAP_DEL_UIDMAP:
-       case LCFG_NODEMAP_DEL_GIDMAP:
-       case LCFG_NODEMAP_DEL_PROJIDMAP:
-               rc = nodemap_parse_idmap(param, idmap);
-               if (rc != 0)
-                       break;
-               if (cmd == LCFG_NODEMAP_DEL_UIDMAP)
-                       rc = nodemap_del_idmap(nodemap_name, NODEMAP_UID,
-                                              idmap);
-               else if (cmd == LCFG_NODEMAP_DEL_GIDMAP)
-                       rc = nodemap_del_idmap(nodemap_name, NODEMAP_GID,
-                                              idmap);
-               else if (cmd == LCFG_NODEMAP_DEL_PROJIDMAP)
-                       rc = nodemap_del_idmap(nodemap_name, NODEMAP_PROJID,
-                                              idmap);
-               else
-                       rc = -EINVAL;
-               break;
-       case LCFG_NODEMAP_SET_FILESET:
-               rc = nodemap_set_fileset(nodemap_name, param);
-               break;
-       case LCFG_NODEMAP_SET_SEPOL:
-               rc = nodemap_set_sepol(nodemap_name, param);
-               break;
-       default:
-               rc = -EINVAL;
-       }
-
-       RETURN(rc);
-}
-
 static inline
 int mgs_pool_check_ostname(struct fs_db *fsdb, char *fsname, char *ostname)
 {