NFS: Fix a refcount leakage in O_DIRECT
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 May 2007 16:58:00 +0000 (12:58 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 May 2007 20:26:01 +0000 (16:26 -0400)
commitb4946ffb1860597b187d78d61ac6504177eb0ff8
tree56e5df1992aa478b806e5a768eda668543a5bb89
parent7a74fc4925067c2102175baef73f9b07ab519b71
NFS: Fix a refcount leakage in O_DIRECT

The current code is leaking a reference to dreq->kref when the calls to
nfs_direct_read_schedule() and nfs_direct_write_schedule() return an
error.
This patch moves the call to kref_put() from nfs_direct_wait() back into
nfs_direct_read() and nfs_direct_write() (which are the functions that
actually took the reference in the first place) fixing the leak.

Thanks to Denis V. Lunev for spotting the bug and proposing the original
fix.

Acked-by: Denis V. Lunev <dlunev@gmail.com>
Acked-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/direct.c