From: NeilBrown nfs4_put_delegation() did a dprintk using a pointer that it had just called a put() on. This could cause a dereference of a pointer to freed memory in some situations. Signed-off-by: Andy Adamson 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, 1 insertion(+), 1 deletion(-) diff -puN fs/nfsd/nfs4callback.c~nfsd4-fix-use-after-put-in-cb_recall fs/nfsd/nfs4callback.c --- 25/fs/nfsd/nfs4callback.c~nfsd4-fix-use-after-put-in-cb_recall 2005-03-30 18:02:21.000000000 -0800 +++ 25-akpm/fs/nfsd/nfs4callback.c 2005-03-30 18:02:21.000000000 -0800 @@ -539,7 +539,7 @@ out: atomic_set(&clp->cl_callback.cb_set, 0); /* Success or failure, now we're either waiting for lease expiration * or deleg_return. */ - nfs4_put_delegation(dp); dprintk("NFSD: nfs4_cb_recall: dp %p dl_flock %p dl_count %d\n",dp, dp->dl_flock, atomic_read(&dp->dl_count)); + nfs4_put_delegation(dp); return; } _