NFS: Fix an NFS client lockdep issue
commit e00b8a24041f37e56b4b8415ce4eba1cbc238065 upstream. There is no reason to be freeing the delegation cred in the rcu callback, and doing so is resulting in a lockdep complaint that rpc_credcache_lock is being called from both softirq and non-softirq contexts. Reported-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f5cc08212d
commit
9db9440fc8
@ -23,8 +23,6 @@
|
||||
|
||||
static void nfs_do_free_delegation(struct nfs_delegation *delegation)
|
||||
{
|
||||
if (delegation->cred)
|
||||
put_rpccred(delegation->cred);
|
||||
kfree(delegation);
|
||||
}
|
||||
|
||||
@ -37,6 +35,10 @@ static void nfs_free_delegation_callback(struct rcu_head *head)
|
||||
|
||||
static void nfs_free_delegation(struct nfs_delegation *delegation)
|
||||
{
|
||||
if (delegation->cred) {
|
||||
put_rpccred(delegation->cred);
|
||||
delegation->cred = NULL;
|
||||
}
|
||||
call_rcu(&delegation->rcu, nfs_free_delegation_callback);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user