mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 06:12:08 +00:00
sysfs: refactor sysfs_add_file_mode_ns
Regroup the code so that preallocated attributes and normal attributes are handled in clearly separate blocks. Acked-by: Christian Brauner <christian.brauner@ubuntu.com> Acked-by: Tejun Heo <tj@kernel.org> Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20210913054121.616001-6-hch@lst.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5cf3bb0d3a
commit
d1a1a9606e
@ -261,7 +261,7 @@ int sysfs_add_file_mode_ns(struct kernfs_node *parent,
|
||||
struct kobject *kobj = parent->priv;
|
||||
const struct sysfs_ops *sysfs_ops = kobj->ktype->sysfs_ops;
|
||||
struct lock_class_key *key = NULL;
|
||||
const struct kernfs_ops *ops;
|
||||
const struct kernfs_ops *ops = NULL;
|
||||
struct kernfs_node *kn;
|
||||
|
||||
/* every kobject with an attribute needs a ktype assigned */
|
||||
@ -270,22 +270,23 @@ int sysfs_add_file_mode_ns(struct kernfs_node *parent,
|
||||
kobject_name(kobj)))
|
||||
return -EINVAL;
|
||||
|
||||
if (sysfs_ops->show && sysfs_ops->store) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
if (mode & SYSFS_PREALLOC) {
|
||||
if (sysfs_ops->show && sysfs_ops->store)
|
||||
ops = &sysfs_prealloc_kfops_rw;
|
||||
else
|
||||
ops = &sysfs_file_kfops_rw;
|
||||
} else if (sysfs_ops->show) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
else if (sysfs_ops->show)
|
||||
ops = &sysfs_prealloc_kfops_ro;
|
||||
else
|
||||
ops = &sysfs_file_kfops_ro;
|
||||
} else if (sysfs_ops->store) {
|
||||
if (mode & SYSFS_PREALLOC)
|
||||
else if (sysfs_ops->store)
|
||||
ops = &sysfs_prealloc_kfops_wo;
|
||||
else
|
||||
} else {
|
||||
if (sysfs_ops->show && sysfs_ops->store)
|
||||
ops = &sysfs_file_kfops_rw;
|
||||
else if (sysfs_ops->show)
|
||||
ops = &sysfs_file_kfops_ro;
|
||||
else if (sysfs_ops->store)
|
||||
ops = &sysfs_file_kfops_wo;
|
||||
} else
|
||||
}
|
||||
|
||||
if (!ops)
|
||||
ops = &sysfs_file_kfops_empty;
|
||||
|
||||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
|
Loading…
Reference in New Issue
Block a user