X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmgc%2Flproc_mgc.c;h=84cd38ba11cecdcd028a552fad46b9cbe4a9a3df;hb=bad5875f130be1ecdfbd1c3f24350ac5982faf74;hp=b712008a56558a51528e763fb794d6bca48f12fa;hpb=f2bf876ef77ed8eda2eeb1b78ead85c1a7a8f81e;p=fs%2Flustre-release.git diff --git a/lustre/mgc/lproc_mgc.c b/lustre/mgc/lproc_mgc.c index b712008..84cd38b 100644 --- a/lustre/mgc/lproc_mgc.c +++ b/lustre/mgc/lproc_mgc.c @@ -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;