|
@@ -640,13 +640,13 @@ static void detach_groups(struct config_group *group)
|
|
|
|
|
|
child = sd->s_dentry;
|
|
|
|
|
|
- mutex_lock(&d_inode(child)->i_mutex);
|
|
|
+ inode_lock(d_inode(child));
|
|
|
|
|
|
configfs_detach_group(sd->s_element);
|
|
|
d_inode(child)->i_flags |= S_DEAD;
|
|
|
dont_mount(child);
|
|
|
|
|
|
- mutex_unlock(&d_inode(child)->i_mutex);
|
|
|
+ inode_unlock(d_inode(child));
|
|
|
|
|
|
d_delete(child);
|
|
|
dput(child);
|
|
@@ -834,11 +834,11 @@ static int configfs_attach_item(struct config_item *parent_item,
|
|
|
* the VFS may already have hit and used them. Thus,
|
|
|
* we must lock them as rmdir() would.
|
|
|
*/
|
|
|
- mutex_lock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_lock(d_inode(dentry));
|
|
|
configfs_remove_dir(item);
|
|
|
d_inode(dentry)->i_flags |= S_DEAD;
|
|
|
dont_mount(dentry);
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
d_delete(dentry);
|
|
|
}
|
|
|
}
|
|
@@ -874,7 +874,7 @@ static int configfs_attach_group(struct config_item *parent_item,
|
|
|
* We must also lock the inode to remove it safely in case of
|
|
|
* error, as rmdir() would.
|
|
|
*/
|
|
|
- mutex_lock_nested(&d_inode(dentry)->i_mutex, I_MUTEX_CHILD);
|
|
|
+ inode_lock_nested(d_inode(dentry), I_MUTEX_CHILD);
|
|
|
configfs_adjust_dir_dirent_depth_before_populate(sd);
|
|
|
ret = populate_groups(to_config_group(item));
|
|
|
if (ret) {
|
|
@@ -883,7 +883,7 @@ static int configfs_attach_group(struct config_item *parent_item,
|
|
|
dont_mount(dentry);
|
|
|
}
|
|
|
configfs_adjust_dir_dirent_depth_after_populate(sd);
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
if (ret)
|
|
|
d_delete(dentry);
|
|
|
}
|
|
@@ -1135,7 +1135,7 @@ int configfs_depend_item(struct configfs_subsystem *subsys,
|
|
|
* subsystem is really registered, and so we need to lock out
|
|
|
* configfs_[un]register_subsystem().
|
|
|
*/
|
|
|
- mutex_lock(&d_inode(root)->i_mutex);
|
|
|
+ inode_lock(d_inode(root));
|
|
|
|
|
|
subsys_sd = configfs_find_subsys_dentry(root->d_fsdata, s_item);
|
|
|
if (!subsys_sd) {
|
|
@@ -1147,7 +1147,7 @@ int configfs_depend_item(struct configfs_subsystem *subsys,
|
|
|
ret = configfs_do_depend_item(subsys_sd->s_dentry, target);
|
|
|
|
|
|
out_unlock_fs:
|
|
|
- mutex_unlock(&d_inode(root)->i_mutex);
|
|
|
+ inode_unlock(d_inode(root));
|
|
|
|
|
|
/*
|
|
|
* If we succeeded, the fs is pinned via other methods. If not,
|
|
@@ -1230,7 +1230,7 @@ int configfs_depend_item_unlocked(struct configfs_subsystem *caller_subsys,
|
|
|
* additional locking to prevent other subsystem from being
|
|
|
* unregistered
|
|
|
*/
|
|
|
- mutex_lock(&d_inode(root->cg_item.ci_dentry)->i_mutex);
|
|
|
+ inode_lock(d_inode(root->cg_item.ci_dentry));
|
|
|
|
|
|
/*
|
|
|
* As we are trying to depend item from other subsystem
|
|
@@ -1254,7 +1254,7 @@ out_root_unlock:
|
|
|
* We were called from subsystem other than our target so we
|
|
|
* took some locks so now it's time to release them
|
|
|
*/
|
|
|
- mutex_unlock(&d_inode(root->cg_item.ci_dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(root->cg_item.ci_dentry));
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -1561,7 +1561,7 @@ int configfs_rename_dir(struct config_item * item, const char *new_name)
|
|
|
down_write(&configfs_rename_sem);
|
|
|
parent = item->parent->dentry;
|
|
|
|
|
|
- mutex_lock(&d_inode(parent)->i_mutex);
|
|
|
+ inode_lock(d_inode(parent));
|
|
|
|
|
|
new_dentry = lookup_one_len(new_name, parent, strlen(new_name));
|
|
|
if (!IS_ERR(new_dentry)) {
|
|
@@ -1577,7 +1577,7 @@ int configfs_rename_dir(struct config_item * item, const char *new_name)
|
|
|
error = -EEXIST;
|
|
|
dput(new_dentry);
|
|
|
}
|
|
|
- mutex_unlock(&d_inode(parent)->i_mutex);
|
|
|
+ inode_unlock(d_inode(parent));
|
|
|
up_write(&configfs_rename_sem);
|
|
|
|
|
|
return error;
|
|
@@ -1590,7 +1590,7 @@ static int configfs_dir_open(struct inode *inode, struct file *file)
|
|
|
struct configfs_dirent * parent_sd = dentry->d_fsdata;
|
|
|
int err;
|
|
|
|
|
|
- mutex_lock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_lock(d_inode(dentry));
|
|
|
/*
|
|
|
* Fake invisibility if dir belongs to a group/default groups hierarchy
|
|
|
* being attached
|
|
@@ -1603,7 +1603,7 @@ static int configfs_dir_open(struct inode *inode, struct file *file)
|
|
|
else
|
|
|
err = 0;
|
|
|
}
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
|
|
|
return err;
|
|
|
}
|
|
@@ -1613,11 +1613,11 @@ static int configfs_dir_close(struct inode *inode, struct file *file)
|
|
|
struct dentry * dentry = file->f_path.dentry;
|
|
|
struct configfs_dirent * cursor = file->private_data;
|
|
|
|
|
|
- mutex_lock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_lock(d_inode(dentry));
|
|
|
spin_lock(&configfs_dirent_lock);
|
|
|
list_del_init(&cursor->s_sibling);
|
|
|
spin_unlock(&configfs_dirent_lock);
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
|
|
|
release_configfs_dirent(cursor);
|
|
|
|
|
@@ -1698,7 +1698,7 @@ static loff_t configfs_dir_lseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
struct dentry * dentry = file->f_path.dentry;
|
|
|
|
|
|
- mutex_lock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_lock(d_inode(dentry));
|
|
|
switch (whence) {
|
|
|
case 1:
|
|
|
offset += file->f_pos;
|
|
@@ -1706,7 +1706,7 @@ static loff_t configfs_dir_lseek(struct file *file, loff_t offset, int whence)
|
|
|
if (offset >= 0)
|
|
|
break;
|
|
|
default:
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
if (offset != file->f_pos) {
|
|
@@ -1732,7 +1732,7 @@ static loff_t configfs_dir_lseek(struct file *file, loff_t offset, int whence)
|
|
|
spin_unlock(&configfs_dirent_lock);
|
|
|
}
|
|
|
}
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
return offset;
|
|
|
}
|
|
|
|
|
@@ -1767,14 +1767,14 @@ int configfs_register_group(struct config_group *parent_group,
|
|
|
|
|
|
parent = parent_group->cg_item.ci_dentry;
|
|
|
|
|
|
- mutex_lock_nested(&d_inode(parent)->i_mutex, I_MUTEX_PARENT);
|
|
|
+ inode_lock_nested(d_inode(parent), I_MUTEX_PARENT);
|
|
|
ret = create_default_group(parent_group, group);
|
|
|
if (!ret) {
|
|
|
spin_lock(&configfs_dirent_lock);
|
|
|
configfs_dir_set_ready(group->cg_item.ci_dentry->d_fsdata);
|
|
|
spin_unlock(&configfs_dirent_lock);
|
|
|
}
|
|
|
- mutex_unlock(&d_inode(parent)->i_mutex);
|
|
|
+ inode_unlock(d_inode(parent));
|
|
|
return ret;
|
|
|
}
|
|
|
EXPORT_SYMBOL(configfs_register_group);
|
|
@@ -1791,7 +1791,7 @@ void configfs_unregister_group(struct config_group *group)
|
|
|
struct dentry *dentry = group->cg_item.ci_dentry;
|
|
|
struct dentry *parent = group->cg_item.ci_parent->ci_dentry;
|
|
|
|
|
|
- mutex_lock_nested(&d_inode(parent)->i_mutex, I_MUTEX_PARENT);
|
|
|
+ inode_lock_nested(d_inode(parent), I_MUTEX_PARENT);
|
|
|
spin_lock(&configfs_dirent_lock);
|
|
|
configfs_detach_prep(dentry, NULL);
|
|
|
spin_unlock(&configfs_dirent_lock);
|
|
@@ -1800,7 +1800,7 @@ void configfs_unregister_group(struct config_group *group)
|
|
|
d_inode(dentry)->i_flags |= S_DEAD;
|
|
|
dont_mount(dentry);
|
|
|
d_delete(dentry);
|
|
|
- mutex_unlock(&d_inode(parent)->i_mutex);
|
|
|
+ inode_unlock(d_inode(parent));
|
|
|
|
|
|
dput(dentry);
|
|
|
|
|
@@ -1872,7 +1872,7 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys)
|
|
|
sd = root->d_fsdata;
|
|
|
link_group(to_config_group(sd->s_element), group);
|
|
|
|
|
|
- mutex_lock_nested(&d_inode(root)->i_mutex, I_MUTEX_PARENT);
|
|
|
+ inode_lock_nested(d_inode(root), I_MUTEX_PARENT);
|
|
|
|
|
|
err = -ENOMEM;
|
|
|
dentry = d_alloc_name(root, group->cg_item.ci_name);
|
|
@@ -1892,7 +1892,7 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- mutex_unlock(&d_inode(root)->i_mutex);
|
|
|
+ inode_unlock(d_inode(root));
|
|
|
|
|
|
if (err) {
|
|
|
unlink_group(group);
|
|
@@ -1913,9 +1913,9 @@ void configfs_unregister_subsystem(struct configfs_subsystem *subsys)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- mutex_lock_nested(&d_inode(root)->i_mutex,
|
|
|
+ inode_lock_nested(d_inode(root),
|
|
|
I_MUTEX_PARENT);
|
|
|
- mutex_lock_nested(&d_inode(dentry)->i_mutex, I_MUTEX_CHILD);
|
|
|
+ inode_lock_nested(d_inode(dentry), I_MUTEX_CHILD);
|
|
|
mutex_lock(&configfs_symlink_mutex);
|
|
|
spin_lock(&configfs_dirent_lock);
|
|
|
if (configfs_detach_prep(dentry, NULL)) {
|
|
@@ -1926,11 +1926,11 @@ void configfs_unregister_subsystem(struct configfs_subsystem *subsys)
|
|
|
configfs_detach_group(&group->cg_item);
|
|
|
d_inode(dentry)->i_flags |= S_DEAD;
|
|
|
dont_mount(dentry);
|
|
|
- mutex_unlock(&d_inode(dentry)->i_mutex);
|
|
|
+ inode_unlock(d_inode(dentry));
|
|
|
|
|
|
d_delete(dentry);
|
|
|
|
|
|
- mutex_unlock(&d_inode(root)->i_mutex);
|
|
|
+ inode_unlock(d_inode(root));
|
|
|
|
|
|
dput(dentry);
|
|
|
|