From: NeilBrown <neilb@cse.unsw.edu.au>

The rpc creds we look up in the callback code need puts.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 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;
 }
_