linux-stable-rt/fs/nfs
Trond Myklebust b4946ffb18 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>
2007-05-30 16:26:01 -04:00
..
Makefile
callback.c
callback.h NFS: Fix more sparse warnings 2007-05-14 19:33:46 -04:00
callback_proc.c
callback_xdr.c
client.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
delegation.c NFS: Fix some 'sparse' warnings... 2007-05-14 19:33:46 -04:00
delegation.h
dir.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
direct.c NFS: Fix a refcount leakage in O_DIRECT 2007-05-30 16:26:01 -04:00
file.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
getroot.c NFS: Kill the obsolete NFS_PARANOIA 2007-05-09 17:58:01 -04:00
idmap.c NFS: use __set_current_state() 2007-05-09 17:58:01 -04:00
inode.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
internal.h
iostat.h
mount_clnt.c
namespace.c
nfs2xdr.c NFS: Kill the obsolete NFS_PARANOIA 2007-05-09 17:58:01 -04:00
nfs3acl.c
nfs3proc.c
nfs3xdr.c
nfs4_fs.h
nfs4namespace.c
nfs4proc.c NFS: Fix some 'sparse' warnings... 2007-05-14 19:33:46 -04:00
nfs4renewd.c
nfs4state.c NFS: Fix some 'sparse' warnings... 2007-05-14 19:33:46 -04:00
nfs4xdr.c NFS: Fix more sparse warnings 2007-05-14 19:33:46 -04:00
nfsroot.c
pagelist.c NFS: Avoid a deadlock situation on write 2007-05-24 10:44:20 -04:00
proc.c
read.c NFS: use zero_user_page 2007-05-14 19:33:45 -04:00
super.c
symlink.c
sysctl.c
unlink.c
write.c NFS: Avoid a deadlock situation on write 2007-05-24 10:44:20 -04:00