NFSv4: Don't call put_rpccred() under the rcu_read_lock()
commit 7c0af9ffb7bb4e5355470fa60b3eb711ddf226fa upstream.
put_rpccred() can sleep.
Fixes: 8f649c3762
("NFSv4: Fix the locking in nfs_inode_reclaim_delegation()")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
[lizf: Backported to 3.4: adjust context]
Signed-off-by: Zefan Li <lizefan@huawei.com>
This commit is contained in:
parent
c7ef03ccf7
commit
deee5f87a9
|
@ -148,8 +148,8 @@ void nfs_inode_reclaim_delegation(struct inode *inode, struct rpc_cred *cred,
|
|||
&delegation->flags);
|
||||
NFS_I(inode)->delegation_state = delegation->type;
|
||||
spin_unlock(&delegation->lock);
|
||||
put_rpccred(oldcred);
|
||||
rcu_read_unlock();
|
||||
put_rpccred(oldcred);
|
||||
} else {
|
||||
/* We appear to have raced with a delegation return. */
|
||||
spin_unlock(&delegation->lock);
|
||||
|
|
Loading…
Reference in New Issue