tmp_suning_uos_patched/fs/nfs
Trond Myklebust 3aff4ebb95 NFS: Prevent a deadlock in the new writeback code
We have to unlock the nfs_page before we call nfs_end_page_writeback
to avoid races with functions that expect the page to be unlocked
when PG_locked and PG_writeback are not set.
The problem is that nfs_unlock_request also releases the nfs_page,
causing a deadlock if the release of the nfs_open_context
triggers an iput() while the PG_writeback flag is still set...

The solution is to separate the unlocking and release of the nfs_page,
so that we can do the former before nfs_end_page_writeback and the
latter after.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
2012-05-09 15:16:07 -04:00
..
blocklayout NFS: create struct nfs_page_array 2012-04-27 14:10:37 -04:00
objlayout NFS: Fix sparse warnings 2012-05-04 14:59:51 -04:00
cache_lib.c NFS: remove RPC PipeFS mount point references from NFS cache routines 2012-01-31 18:20:26 -05:00
cache_lib.h NFS: DNS resolver PipeFS notifier introduced 2012-01-31 18:20:26 -05:00
callback_proc.c NFSv4: Further clean-ups of delegation stateid validation 2012-03-06 10:32:44 -05:00
callback_xdr.c NFSv4: Rate limit the state manager warning messages 2012-03-12 18:15:22 -04:00
callback.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
callback.h NFSv4.1: Convert slotid from u8 to u32 2012-02-15 00:19:43 -05:00
client.c NFSv2/v3: Simulate the change attribute 2012-05-01 15:42:43 -04:00
delegation.c NFSv4: nfs_client_return_marked_delegations can't flush data 2012-05-08 12:53:21 -04:00
delegation.h NFS: nfs_inode_return_delegation() should always flush dirty data 2012-05-08 12:53:21 -04:00
dir.c NFS: Adapt readdirplus to application usage patterns 2012-05-01 19:16:43 -04:00
direct.c NFS: Fix sparse warnings 2012-05-04 14:59:51 -04:00
dns_resolve.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
dns_resolve.h NFS: DNS resolver cache per network namespace context introduced 2012-01-31 18:20:26 -05:00
file.c NFS: Don't do a full flush to disk on close() if we hold a delegation 2012-05-08 12:53:21 -04:00
fscache-index.c NFS: Use the inode->i_version to cache NFSv4 change attribute information 2011-10-18 09:14:34 -07:00
fscache.c NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
idmap.c NFS client updates for Linux 3.4 2012-03-23 08:53:47 -07:00
inode.c NFS: Adapt readdirplus to application usage patterns 2012-05-01 19:16:43 -04:00
internal.h NFSv2/v3: Simulate the change attribute 2012-05-01 15:42:43 -04:00
iostat.h NFS: Squelch compiler warning in nfs_add_server_stats() 2010-05-14 15:09:31 -04:00
Kconfig SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
Makefile pnfsblock: add blocklayout Kconfig option, Makefile, and stubs 2011-07-31 12:18:15 -04:00
mount_clnt.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
namespace.c NFS: Remove extra rpc_clnt argument to proc_lookup 2012-04-27 14:10:39 -04:00
netns.h NFS: replace global bl_wq with per-net one 2012-03-11 10:57:35 -04:00
nfs2xdr.c NFSv2/v3: Simulate the change attribute 2012-05-01 15:42:43 -04:00
nfs3acl.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
nfs3proc.c NFS: Remove extra rpc_clnt argument to proc_lookup 2012-04-27 14:10:39 -04:00
nfs3xdr.c NFSv2/v3: Simulate the change attribute 2012-05-01 15:42:43 -04:00
nfs4_fs.h NFS: Create a submount rpc_op 2012-04-27 14:10:39 -04:00
nfs4filelayout.c NFS: Prevent garbage cinfo->ds from leaking out 2012-04-27 14:10:39 -04:00
nfs4filelayout.h NFS: create struct nfs_commit_info 2012-04-27 14:10:38 -04:00
nfs4filelayoutdev.c NFSv4.1 fix page number calculation bug for filelayout decode buffers 2012-04-26 12:23:23 -04:00
nfs4namespace.c NFS: Create a submount rpc_op 2012-04-27 14:10:39 -04:00
nfs4proc.c NFSv4: COMMIT does not need post-op attributes 2012-05-01 15:42:45 -04:00
nfs4renewd.c NFSv4: The NFSv4.0 client must send RENEW calls if it holds a delegation 2011-08-24 15:07:37 -04:00
nfs4state.c NFSv4: Keep dropped state owners on the LRU list for a while 2012-04-21 13:01:00 -04:00
nfs4xdr.c NFSv4: COMMIT does not need post-op attributes 2012-05-01 15:42:45 -04:00
nfsroot.c SUNRPC/NFS: Add Kbuild dependencies for NFS_DEBUG/RPC_DEBUG 2012-03-20 13:08:26 -04:00
pagelist.c NFS: Prevent a deadlock in the new writeback code 2012-05-09 15:16:07 -04:00
pnfs_dev.c NFS: Fix more NFS debug related build warnings 2012-03-21 09:31:44 -04:00
pnfs.c NFS: Clean up nfs read and write error paths 2012-05-01 13:48:13 -04:00
pnfs.h NFS: pnfs_pageio_init_read() and init_write() need an extra argument 2012-04-30 14:06:46 -04:00
proc.c NFS: Remove extra rpc_clnt argument to proc_lookup 2012-04-27 14:10:39 -04:00
read.c NFS: Fix sparse warnings 2012-05-04 14:59:51 -04:00
super.c NFS: Honor the authflavor set in the clone mount data 2012-04-27 14:10:03 -04:00
symlink.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sysctl.c NFS: Fall back on old idmapper if request_key() fails 2012-02-06 18:48:01 -05:00
unlink.c NFS: Remove nfs4_setup_sequence from generic rename code 2012-03-21 09:31:46 -04:00
write.c NFS: Prevent a deadlock in the new writeback code 2012-05-09 15:16:07 -04:00