Whamcloud - gitweb
LU-15445 tests: sanity test_160p() fix
[fs/lustre-release.git] / lustre / mgc / lproc_mgc.c
index b712008..84cd38b 100644 (file)
@@ -27,7 +27,6 @@
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  */
 #define DEBUG_SUBSYSTEM S_CLASS
 
@@ -54,7 +53,7 @@ static int mgc_ir_state_seq_show(struct seq_file *m, void *v)
 
 LDEBUGFS_SEQ_FOPS_RO(mgc_ir_state);
 
-struct lprocfs_vars lprocfs_mgc_obd_vars[] = {
+struct ldebugfs_vars ldebugfs_mgc_obd_vars[] = {
        { .name =       "connect_flags",
          .fops =       &mgc_connect_flags_fops },
        { .name =       "mgs_server_uuid",
@@ -72,12 +71,48 @@ struct lprocfs_vars lprocfs_mgc_obd_vars[] = {
 LUSTRE_ATTR(mgs_conn_uuid, 0444, conn_uuid_show, NULL);
 LUSTRE_RO_ATTR(conn_uuid);
 
-LUSTRE_WO_ATTR(ping);
+LUSTRE_RW_ATTR(ping);
+
+ssize_t dynamic_nids_show(struct kobject *kobj, struct attribute *attr,
+                         char *buf)
+{
+       struct obd_device *obd = container_of(kobj, struct obd_device,
+                                             obd_kset.kobj);
+       ssize_t count;
+
+       ENTRY;
+       count = snprintf(buf, PAGE_SIZE, "%u\n", obd->obd_dynamic_nids);
+
+       RETURN(count);
+}
+
+ssize_t dynamic_nids_store(struct kobject *kobj, struct attribute *attr,
+                          const char *buffer, size_t count)
+{
+       struct obd_device *obd = container_of(kobj, struct obd_device,
+                                             obd_kset.kobj);
+       bool val;
+       int rc;
+
+       ENTRY;
+       rc = kstrtobool(buffer, &val);
+       if (rc)
+               return rc;
+
+       spin_lock(&obd->obd_dev_lock);
+       obd->obd_dynamic_nids = val;
+       spin_unlock(&obd->obd_dev_lock);
+
+       RETURN(count);
+}
+
+LUSTRE_RW_ATTR(dynamic_nids);
 
 static struct attribute *mgc_attrs[] = {
        &lustre_attr_mgs_conn_uuid.attr,
        &lustre_attr_conn_uuid.attr,
        &lustre_attr_ping.attr,
+       &lustre_attr_dynamic_nids.attr,
        NULL,
 };
 
@@ -86,7 +121,7 @@ int mgc_tunables_init(struct obd_device *obd)
        int rc;
 
        obd->obd_ktype.default_attrs = mgc_attrs;
-       obd->obd_vars = lprocfs_mgc_obd_vars;
+       obd->obd_debugfs_vars = ldebugfs_mgc_obd_vars;
        rc = lprocfs_obd_setup(obd, true);
        if (rc)
                return rc;