Commit 9a70adff authored by Krzysztof Opasiak's avatar Krzysztof Opasiak Committed by Nicholas Bellinger

fs: configfs: Factor out configfs_find_subsys_dentry()

configfs_depend_item() is quite complicated and should
be split up into smaller functions. This also allow to
share this code with other functions.
Signed-off-by: default avatarKrzysztof Opasiak <k.opasiak@samsung.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 9fb434e7
...@@ -1079,11 +1079,30 @@ static int configfs_do_depend_item(struct dentry *subsys_dentry, ...@@ -1079,11 +1079,30 @@ static int configfs_do_depend_item(struct dentry *subsys_dentry,
return ret; return ret;
} }
static inline struct configfs_dirent *
configfs_find_subsys_dentry(struct configfs_dirent *root_sd,
struct config_item *subsys_item)
{
struct configfs_dirent *p;
struct configfs_dirent *ret = NULL;
list_for_each_entry(p, &root_sd->s_children, s_sibling) {
if (p->s_type & CONFIGFS_DIR &&
p->s_element == subsys_item) {
ret = p;
break;
}
}
return ret;
}
int configfs_depend_item(struct configfs_subsystem *subsys, int configfs_depend_item(struct configfs_subsystem *subsys,
struct config_item *target) struct config_item *target)
{ {
int ret; int ret;
struct configfs_dirent *p, *root_sd, *subsys_sd = NULL; struct configfs_dirent *subsys_sd;
struct config_item *s_item = &subsys->su_group.cg_item; struct config_item *s_item = &subsys->su_group.cg_item;
struct dentry *root; struct dentry *root;
...@@ -1102,17 +1121,7 @@ int configfs_depend_item(struct configfs_subsystem *subsys, ...@@ -1102,17 +1121,7 @@ int configfs_depend_item(struct configfs_subsystem *subsys,
*/ */
mutex_lock(&d_inode(root)->i_mutex); mutex_lock(&d_inode(root)->i_mutex);
root_sd = root->d_fsdata; subsys_sd = configfs_find_subsys_dentry(root->d_fsdata, s_item);
list_for_each_entry(p, &root_sd->s_children, s_sibling) {
if (p->s_type & CONFIGFS_DIR) {
if (p->s_element == s_item) {
subsys_sd = p;
break;
}
}
}
if (!subsys_sd) { if (!subsys_sd) {
ret = -ENOENT; ret = -ENOENT;
goto out_unlock_fs; goto out_unlock_fs;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment