2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-16 09:13:55 +08:00
linux-next/fs/nfs
Trond Myklebust 8dd3775889 NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code
Move more pnfs-isms out of the generic commit code.

Bugfixes:

- filelayout_scan_commit_lists doesn't need to get/put the lseg.
  In fact since it is run under the inode->i_lock, the lseg_put()
  can deadlock.

- Ensure that we distinguish between what needs to be done for
  commit-to-data server and what needs to be done for commit-to-MDS
  using the new flag PG_COMMIT_TO_DS. Otherwise we may end up calling
  put_lseg() on a bucket for a struct nfs_page that got written
  through the MDS.

- Fix a case where we were using list_del() on an nfs_page->wb_list
  instead of list_del_init().

- filelayout_initiate_commit needs to call filelayout_commit_release
  on error instead of the mds_ops->rpc_release(). Otherwise it won't
  clear the commit lock.

Cleanups:

- Let the files layout manage the commit lists for the pNFS case.
  Don't expose stuff like pnfs_choose_commit_list, and the fact
  that the commit buckets hold references to the layout segment
  in common code.

- Cast out the put_lseg() calls for the struct nfs_read/write_data->lseg
  into the pNFS layer from whence they came.

- Let the pNFS layer manage the NFS_INO_PNFS_COMMIT bit.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
2012-03-17 11:09:33 -04:00
..
blocklayout NFS: null dereference in dev_remove() 2012-03-13 15:33:08 -04:00
objlayout pnfs-obj: Uglify objio_segment allocation for the sake of the principle :-( 2012-03-13 23:47:59 -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 NFS: Only define some function when v4.1 is enabled 2012-03-12 12:51:40 -04:00
delegation.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
delegation.h NFSv4.0: Re-establish the callback channel on NFS4ERR_CB_PATHDOWN 2012-03-10 11:54:36 -05:00
dir.c NFS: Make nfs_cache_array.size a signed integer 2012-03-02 15:36:13 -05:00
direct.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07: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: Ensure that mmapped pages remain stable during writeback 2012-01-31 19:28:08 -05: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 FS-Cache: Add a helper to bulk uncache pages on an inode 2011-07-07 13:21:56 -07:00
fscache.h NFS: Propagate 'fsc' mount option through automounts 2009-09-23 14:36:39 -04:00
getroot.c Merge branch 'nfs-for-2.6.39' into nfs-for-next 2011-03-24 17:03:14 -04:00
idmap.c NFS: Check return value from rpc_queue_upcall() 2012-03-12 12:51:42 -04:00
inode.c NFS: remove nfs_inode radix tree 2012-03-10 17:14:10 -05:00
internal.h NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00
iostat.h NFS: Squelch compiler warning in nfs_add_server_stats() 2010-05-14 15:09:31 -04:00
Kconfig NFSv4: Send implementation id with exchange_id 2012-03-01 17:10:21 -05:00
Makefile pnfsblock: add blocklayout Kconfig option, Makefile, and stubs 2011-07-31 12:18:15 -04:00
mount_clnt.c SUNRPC: constify the rpc_program 2012-01-31 19:28:20 -05:00
namespace.c nfs: Clean up debugging in nfs_follow_mountpoint() 2012-02-16 15:05:16 -05:00
netns.h NFS: replace global bl_wq with per-net one 2012-03-11 10:57:35 -04:00
nfs2xdr.c SUNRPC: constify the rpc_program 2012-01-31 19:28:20 -05:00
nfs3acl.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
nfs3proc.c Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer 2011-12-06 22:12:27 +01:00
nfs3xdr.c SUNRPC: constify the rpc_program 2012-01-31 19:28:20 -05:00
nfs4_fs.h NFSv4: Clean up nfs4_select_rw_stateid() 2012-03-08 22:38:55 -05:00
nfs4filelayout.c NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00
nfs4filelayout.h NFS: remove nfs_inode radix tree 2012-03-10 17:14:10 -05:00
nfs4filelayoutdev.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
nfs4namespace.c SUNRPC: Use RCU to dereference the rpc_clnt.cl_xprt field 2012-03-02 15:36:38 -05:00
nfs4proc.c NFSv4: Rate limit the state manager warning messages 2012-03-12 18:15:22 -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: Rate limit the state manager for lock reclaim warning messages 2012-03-14 09:25:26 -04:00
nfs4xdr.c NFS: Fix a compile error when !defined NFS_DEBUG 2012-03-14 21:55:01 -04:00
nfsroot.c NFS: Revert NFSROOT default mount options 2011-05-27 17:42:47 -04:00
pagelist.c NFS: remove nfs_inode radix tree 2012-03-10 17:14:10 -05:00
pnfs_dev.c NFS: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
pnfs.c NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00
pnfs.h NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00
proc.c Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer 2011-12-06 22:12:27 +01:00
read.c NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00
super.c NFS: Fix a compile issue when !CONFIG_NFS_V4_1 2012-03-05 15:27:01 -05: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: Fix a number of sparse warnings 2012-03-11 15:14:16 -04:00
write.c NFSv4.1: Clean ups and bugfixes for the pNFS read/writeback/commit code 2012-03-17 11:09:33 -04:00