diff options
-rw-r--r-- | fs/orangefs/orangefs-sysfs.c | 73 |
1 files changed, 15 insertions, 58 deletions
diff --git a/fs/orangefs/orangefs-sysfs.c b/fs/orangefs/orangefs-sysfs.c index 2642cb2f26b2..a772d26ad9d9 100644 --- a/fs/orangefs/orangefs-sysfs.c +++ b/fs/orangefs/orangefs-sysfs.c @@ -155,19 +155,11 @@ static ssize_t orangefs_attr_show(struct kobject *kobj, char *buf) { struct orangefs_attribute *attribute; - int rc; attribute = container_of(attr, struct orangefs_attribute, attr); - - if (!attribute->show) { - rc = -EIO; - goto out; - } - - rc = attribute->show(kobj, attribute, buf); - -out: - return rc; + if (!attribute->show) + return -EIO; + return attribute->show(kobj, attribute, buf); } static ssize_t orangefs_attr_store(struct kobject *kobj, @@ -176,22 +168,15 @@ static ssize_t orangefs_attr_store(struct kobject *kobj, size_t len) { struct orangefs_attribute *attribute; - int rc; - gossip_debug(GOSSIP_SYSFS_DEBUG, - "orangefs_attr_store: start\n"); + if (!strcmp(kobj->name, PC_KOBJ_ID) || + !strcmp(kobj->name, STATS_KOBJ_ID)) + return -EPERM; attribute = container_of(attr, struct orangefs_attribute, attr); - - if (!attribute->store) { - rc = -EIO; - goto out; - } - - rc = attribute->store(kobj, attribute, buf, len); - -out: - return rc; + if (!attribute->store) + return -EIO; + return attribute->store(kobj, attribute, buf, len); } static const struct sysfs_ops orangefs_sysfs_ops = { @@ -199,34 +184,6 @@ static const struct sysfs_ops orangefs_sysfs_ops = { .store = orangefs_attr_store, }; -static const struct sysfs_ops acache_orangefs_sysfs_ops = { - .show = orangefs_attr_show, - .store = orangefs_attr_store, -}; - -static const struct sysfs_ops capcache_orangefs_sysfs_ops = { - .show = orangefs_attr_show, - .store = orangefs_attr_store, -}; - -static const struct sysfs_ops ccache_orangefs_sysfs_ops = { - .show = orangefs_attr_show, - .store = orangefs_attr_store, -}; - -static const struct sysfs_ops ncache_orangefs_sysfs_ops = { - .show = orangefs_attr_show, - .store = orangefs_attr_store, -}; - -static const struct sysfs_ops pc_orangefs_sysfs_ops = { - .show = orangefs_attr_show, -}; - -static const struct sysfs_ops stats_orangefs_sysfs_ops = { - .show = orangefs_attr_show, -}; - static ssize_t sysfs_int_show(struct kobject *kobj, struct orangefs_attribute *attr, char *buf) { @@ -909,7 +866,7 @@ static struct attribute *acache_orangefs_default_attrs[] = { }; static struct kobj_type acache_orangefs_ktype = { - .sysfs_ops = &acache_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = acache_orangefs_default_attrs, }; @@ -946,7 +903,7 @@ static struct attribute *capcache_orangefs_default_attrs[] = { }; static struct kobj_type capcache_orangefs_ktype = { - .sysfs_ops = &capcache_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = capcache_orangefs_default_attrs, }; @@ -983,7 +940,7 @@ static struct attribute *ccache_orangefs_default_attrs[] = { }; static struct kobj_type ccache_orangefs_ktype = { - .sysfs_ops = &ccache_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = ccache_orangefs_default_attrs, }; @@ -1020,7 +977,7 @@ static struct attribute *ncache_orangefs_default_attrs[] = { }; static struct kobj_type ncache_orangefs_ktype = { - .sysfs_ops = &ncache_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = ncache_orangefs_default_attrs, }; @@ -1050,7 +1007,7 @@ static struct attribute *pc_orangefs_default_attrs[] = { }; static struct kobj_type pc_orangefs_ktype = { - .sysfs_ops = &pc_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = pc_orangefs_default_attrs, }; @@ -1073,7 +1030,7 @@ static struct attribute *stats_orangefs_default_attrs[] = { }; static struct kobj_type stats_orangefs_ktype = { - .sysfs_ops = &stats_orangefs_sysfs_ops, + .sysfs_ops = &orangefs_sysfs_ops, .default_attrs = stats_orangefs_default_attrs, }; |