wrappers for ->i_mutex access
parallel to mutex_{lock,unlock,trylock,is_locked,lock_nested}, inode_foo(inode) being mutex_foo(&inode->i_mutex). Please, use those for access to ->i_mutex; over the coming cycle ->i_mutex will become rwsem, with ->lookup() done with it held only shared. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -192,7 +192,7 @@ nfsd4_create_clid_dir(struct nfs4_client *clp)
|
||||
|
||||
dir = nn->rec_file->f_path.dentry;
|
||||
/* lock the parent */
|
||||
mutex_lock(&d_inode(dir)->i_mutex);
|
||||
inode_lock(d_inode(dir));
|
||||
|
||||
dentry = lookup_one_len(dname, dir, HEXDIR_LEN-1);
|
||||
if (IS_ERR(dentry)) {
|
||||
@@ -213,7 +213,7 @@ nfsd4_create_clid_dir(struct nfs4_client *clp)
|
||||
out_put:
|
||||
dput(dentry);
|
||||
out_unlock:
|
||||
mutex_unlock(&d_inode(dir)->i_mutex);
|
||||
inode_unlock(d_inode(dir));
|
||||
if (status == 0) {
|
||||
if (nn->in_grace) {
|
||||
crp = nfs4_client_to_reclaim(dname, nn);
|
||||
@@ -286,7 +286,7 @@ nfsd4_list_rec_dir(recdir_func *f, struct nfsd_net *nn)
|
||||
}
|
||||
|
||||
status = iterate_dir(nn->rec_file, &ctx.ctx);
|
||||
mutex_lock_nested(&d_inode(dir)->i_mutex, I_MUTEX_PARENT);
|
||||
inode_lock_nested(d_inode(dir), I_MUTEX_PARENT);
|
||||
|
||||
list_for_each_entry_safe(entry, tmp, &ctx.names, list) {
|
||||
if (!status) {
|
||||
@@ -302,7 +302,7 @@ nfsd4_list_rec_dir(recdir_func *f, struct nfsd_net *nn)
|
||||
list_del(&entry->list);
|
||||
kfree(entry);
|
||||
}
|
||||
mutex_unlock(&d_inode(dir)->i_mutex);
|
||||
inode_unlock(d_inode(dir));
|
||||
nfs4_reset_creds(original_cred);
|
||||
|
||||
list_for_each_entry_safe(entry, tmp, &ctx.names, list) {
|
||||
@@ -322,7 +322,7 @@ nfsd4_unlink_clid_dir(char *name, int namlen, struct nfsd_net *nn)
|
||||
dprintk("NFSD: nfsd4_unlink_clid_dir. name %.*s\n", namlen, name);
|
||||
|
||||
dir = nn->rec_file->f_path.dentry;
|
||||
mutex_lock_nested(&d_inode(dir)->i_mutex, I_MUTEX_PARENT);
|
||||
inode_lock_nested(d_inode(dir), I_MUTEX_PARENT);
|
||||
dentry = lookup_one_len(name, dir, namlen);
|
||||
if (IS_ERR(dentry)) {
|
||||
status = PTR_ERR(dentry);
|
||||
@@ -335,7 +335,7 @@ nfsd4_unlink_clid_dir(char *name, int namlen, struct nfsd_net *nn)
|
||||
out:
|
||||
dput(dentry);
|
||||
out_unlock:
|
||||
mutex_unlock(&d_inode(dir)->i_mutex);
|
||||
inode_unlock(d_inode(dir));
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user