The call to migrate_page() will cause the page->private field to be cleared. Also fix up the locking around the page->private transfer, so that we ensure that calls to nfs_page_find_request() don't end up racing. Finally, fix up a double free bug: nfs_unlock_request() already calls nfs_release_request() for us... Reported-by: Wu Fengguang <fengguang.wu@intel.com> Tested-by: Andi Kleen <andi@firstfloor.org> Cc: stable@kernel.org Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> |
||
---|---|---|
.. | ||
cache_lib.c | ||
cache_lib.h | ||
callback.c | ||
callback.h | ||
callback_proc.c | ||
callback_xdr.c | ||
client.c | ||
delegation.c | ||
delegation.h | ||
dir.c | ||
direct.c | ||
dns_resolve.c | ||
dns_resolve.h | ||
file.c | ||
fscache-index.c | ||
fscache.c | ||
fscache.h | ||
getroot.c | ||
idmap.c | ||
inode.c | ||
internal.h | ||
iostat.h | ||
Kconfig | ||
Makefile | ||
mount_clnt.c | ||
namespace.c | ||
nfs2xdr.c | ||
nfs3acl.c | ||
nfs3proc.c | ||
nfs3xdr.c | ||
nfs4_fs.h | ||
nfs4namespace.c | ||
nfs4proc.c | ||
nfs4renewd.c | ||
nfs4state.c | ||
nfs4xdr.c | ||
nfsroot.c | ||
pagelist.c | ||
proc.c | ||
read.c | ||
super.c | ||
symlink.c | ||
sysctl.c | ||
unlink.c | ||
write.c |