mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 18:30:54 +07:00
NFS: Fix an NFS client lockdep issue
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> Cc: stable@kernel.org
This commit is contained in:
parent
c7a360b05b
commit
e00b8a2404
@ -23,8 +23,6 @@
|
|||||||
|
|
||||||
static void nfs_do_free_delegation(struct nfs_delegation *delegation)
|
static void nfs_do_free_delegation(struct nfs_delegation *delegation)
|
||||||
{
|
{
|
||||||
if (delegation->cred)
|
|
||||||
put_rpccred(delegation->cred);
|
|
||||||
kfree(delegation);
|
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)
|
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);
|
call_rcu(&delegation->rcu, nfs_free_delegation_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user