linux/fs/nfs
Trond Myklebust 1ae88b2e44 NFS: Fix an O_DIRECT Oops...
We can't call nfs_readdata_release()/nfs_writedata_release() without
first initialising and referencing args.context. Doing so inside
nfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment()
causes an Oops.

We should rather be calling nfs_readdata_free()/nfs_writedata_free() in
those cases.

Looking at the O_DIRECT code, the "struct nfs_direct_req" is already
referencing the nfs_open_context for us. Since the readdata and writedata
structures carry a reference to that, we can simplify things by getting rid
of the extra nfs_open_context references, so that we can replace all
instances of nfs_readdata_release()/nfs_writedata_release().

Reported-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-08-12 08:21:39 -07:00
..
callback.c
callback.h
callback_proc.c
callback_xdr.c
client.c NFSv4: Fix an NFSv4 mount regression 2009-07-21 16:48:07 -04:00
delegation.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
delegation.h
dir.c NFSv4: Fix a problem whereby a buggy server can oops the kernel 2009-07-21 19:22:38 -04:00
direct.c NFS: Fix an O_DIRECT Oops... 2009-08-12 08:21:39 -07:00
file.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
fscache-index.c
fscache.c
fscache.h
getroot.c
idmap.c
inode.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
internal.h
iostat.h
Kconfig
Makefile
mount_clnt.c
namespace.c
nfs2xdr.c
nfs3acl.c
nfs3proc.c
nfs3xdr.c
nfs4_fs.h NFSv4: Fix an NFSv4 mount regression 2009-07-21 16:48:07 -04:00
nfs4namespace.c
nfs4proc.c NFSv4: Fix a problem whereby a buggy server can oops the kernel 2009-07-21 19:22:38 -04:00
nfs4renewd.c
nfs4state.c NFSv4: Fix an Oops in nfs4_free_lock_state 2009-07-21 16:47:46 -04:00
nfs4xdr.c
nfsroot.c
pagelist.c
proc.c
read.c NFS: Fix an O_DIRECT Oops... 2009-08-12 08:21:39 -07:00
super.c
symlink.c
sysctl.c
unlink.c
write.c NFS: Fix an O_DIRECT Oops... 2009-08-12 08:21:39 -07:00