From: NeilBrown The rpc creds we look up in the callback code need puts. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- 25-akpm/fs/nfsd/nfs4callback.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN fs/nfsd/nfs4callback.c~nfsd4-fix-callback-cred-refcnt-leak fs/nfsd/nfs4callback.c --- 25/fs/nfsd/nfs4callback.c~nfsd4-fix-callback-cred-refcnt-leak 2005-03-07 23:55:43.000000000 -0800 +++ 25-akpm/fs/nfsd/nfs4callback.c 2005-03-07 23:55:43.000000000 -0800 @@ -449,6 +449,7 @@ nfsd4_probe_callback(struct nfs4_client msg.rpc_cred = nfsd4_lookupcred(clp,0); status = rpc_call_async(clnt, &msg, RPC_TASK_ASYNC, nfs4_cb_null, NULL); + put_rpccred(msg.rpc_cred); if (status != 0) { dprintk("NFSD: asynchronous NFSPROC4_CB_NULL failed!\n"); @@ -573,5 +574,6 @@ nfsd4_cb_recall(struct nfs4_delegation * nfs4_cb_recall_done, cbr ))) dprintk("NFSD: recall_delegation: rpc_call_async failed %d\n", status); + put_rpccred(msg.rpc_cred); return; } _