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:
parent
57b8f112cf
commit
5955102c99
177 changed files with 908 additions and 883 deletions
|
@ -55,10 +55,10 @@ nfsd4_security_inode_setsecctx(struct svc_fh *resfh, struct xdr_netobj *label, u
|
|||
struct inode *inode = d_inode(resfh->fh_dentry);
|
||||
int status;
|
||||
|
||||
mutex_lock(&inode->i_mutex);
|
||||
inode_lock(inode);
|
||||
status = security_inode_setsecctx(resfh->fh_dentry,
|
||||
label->data, label->len);
|
||||
mutex_unlock(&inode->i_mutex);
|
||||
inode_unlock(inode);
|
||||
|
||||
if (status)
|
||||
/*
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ fh_lock_nested(struct svc_fh *fhp, unsigned int subclass)
|
|||
}
|
||||
|
||||
inode = d_inode(dentry);
|
||||
mutex_lock_nested(&inode->i_mutex, subclass);
|
||||
inode_lock_nested(inode, subclass);
|
||||
fill_pre_wcc(fhp);
|
||||
fhp->fh_locked = true;
|
||||
}
|
||||
|
@ -307,7 +307,7 @@ fh_unlock(struct svc_fh *fhp)
|
|||
{
|
||||
if (fhp->fh_locked) {
|
||||
fill_post_wcc(fhp);
|
||||
mutex_unlock(&d_inode(fhp->fh_dentry)->i_mutex);
|
||||
inode_unlock(d_inode(fhp->fh_dentry));
|
||||
fhp->fh_locked = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -493,9 +493,9 @@ __be32 nfsd4_set_nfs4_label(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|||
|
||||
dentry = fhp->fh_dentry;
|
||||
|
||||
mutex_lock(&d_inode(dentry)->i_mutex);
|
||||
inode_lock(d_inode(dentry));
|
||||
host_error = security_inode_setsecctx(dentry, label->data, label->len);
|
||||
mutex_unlock(&d_inode(dentry)->i_mutex);
|
||||
inode_unlock(d_inode(dentry));
|
||||
return nfserrno(host_error);
|
||||
}
|
||||
#else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue