diff --git a/[refs] b/[refs] index 5043d3f0db18..bb03da0e23cb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c7a360b05b5430ac1d75dc7d53c586ada60a05cb +refs/heads/master: e00b8a24041f37e56b4b8415ce4eba1cbc238065 diff --git a/trunk/fs/nfs/delegation.c b/trunk/fs/nfs/delegation.c index 364e4328f392..bbbc6bf5cb2e 100644 --- a/trunk/fs/nfs/delegation.c +++ b/trunk/fs/nfs/delegation.c @@ -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); }