linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/17] NFS: Create a common path used by reads and writes
@ 2014-04-25 20:55 Anna Schumaker
  2014-04-25 20:55 ` [PATCH v2 01/17] NFS: Create a common argument structure for " Anna Schumaker
                   ` (17 more replies)
  0 siblings, 18 replies; 29+ messages in thread
From: Anna Schumaker @ 2014-04-25 20:55 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs; +Cc: dros, hch

I noticed that much of the read and write code was almost identical, with
only minor differences in argument types and names.  These patches seek to
unify these two codepaths wherever possible in order to make future changes
easier.

Table of contents:
	Patches 01 - 05: Set up common data structures.
	Patches 06 - 10: Set up a shared rpc_call_ops struct.
	Patches 11 - 15: Set up a shared nfs_pageio_ops struct.

Some of the commit setup was moved into common code, but I'm willing to
move this back into write.c if this looks to be a problem.

Future work:
	I have rough pNFS patches to combine the read and write paths in
	pnfs.c.  They apply on top of Dros' multiple requests work and
	should get more testing before I submit.

Testing:
	I tested every version of NFS using the cthon and xfs tests without
	hitting anything new.  Any extra testing would be great seeing how
	the read and write paths are vitally important.

Changes in v2:
	Reorder data fields in the earlier patches to keep read-only and
	write-only variables together.

Questions?  Comments?  Thoughts?

Anna


Anna Schumaker (17):
  NFS: Create a common argument structure for reads and writes
  NFS: Create a common results structure for reads and writes
  NFS: Create a common read and write data struct
  NFS: Create a common read and write header struct
  NFS: Move the write verifier into the nfs_pgio_header
  NFS: Create a common pgio_alloc and pgio_release function
  NFS: Create a common rw_header_alloc and rw_header_free function
  NFS: Create a common pgio_rpc_prepare function
  NFS: Create a common nfs_pgio_result_common function
  NFS: Create a common rpc_call_ops struct
  NFS: Create a common rpcsetup function for reads and writes
  NFS: Create a common pgio_error function
  NFS: Create a generic_pgio function
  NFS: Create a common initiate_pgio() function
  NFS: Create a common multiple_pgios() function
  NFS: Create a common generic_pg_pgios()
  NFS: Create a common nfs_pageio_ops struct

 fs/nfs/Makefile                  |   2 +-
 fs/nfs/blocklayout/blocklayout.c |  22 +-
 fs/nfs/direct.c                  |   4 +-
 fs/nfs/internal.h                |  31 ++-
 fs/nfs/nfs2xdr.c                 |  14 +-
 fs/nfs/nfs3proc.c                |  19 +-
 fs/nfs/nfs3xdr.c                 |  16 +-
 fs/nfs/nfs4_fs.h                 |   4 +-
 fs/nfs/nfs4filelayout.c          |  40 ++--
 fs/nfs/nfs4proc.c                |  52 ++---
 fs/nfs/nfs4trace.h               |   8 +-
 fs/nfs/nfs4xdr.c                 |  19 +-
 fs/nfs/objlayout/objio_osd.c     |   6 +-
 fs/nfs/objlayout/objlayout.c     |  16 +-
 fs/nfs/objlayout/objlayout.h     |   8 +-
 fs/nfs/pageio.c                  | 386 +++++++++++++++++++++++++++++++++++
 fs/nfs/pagelist.c                |   2 +
 fs/nfs/pnfs.c                    |  46 ++---
 fs/nfs/pnfs.h                    |  10 +-
 fs/nfs/proc.c                    |  19 +-
 fs/nfs/read.c                    | 348 +++-----------------------------
 fs/nfs/write.c                   | 425 +++++----------------------------------
 include/linux/nfs_fs.h           |   3 +-
 include/linux/nfs_page.h         |  13 ++
 include/linux/nfs_xdr.h          |  95 +++------
 25 files changed, 662 insertions(+), 946 deletions(-)
 create mode 100644 fs/nfs/pageio.c

-- 
1.9.2


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2014-05-02 19:06 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-25 20:55 [PATCH v2 00/17] NFS: Create a common path used by reads and writes Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 01/17] NFS: Create a common argument structure for " Anna Schumaker
2014-05-02 13:20   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 02/17] NFS: Create a common results " Anna Schumaker
2014-05-02 13:22   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 03/17] NFS: Create a common read and write data struct Anna Schumaker
2014-05-02 18:59   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 04/17] NFS: Create a common read and write header struct Anna Schumaker
2014-05-02 18:59   ` Jeff Layton
2014-05-02 19:03     ` Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 05/17] NFS: Move the write verifier into the nfs_pgio_header Anna Schumaker
2014-05-02 19:01   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 06/17] NFS: Create a common pgio_alloc and pgio_release function Anna Schumaker
2014-05-02 19:06   ` Jeff Layton
2014-04-25 20:55 ` [PATCH v2 07/17] NFS: Create a common rw_header_alloc and rw_header_free function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 08/17] NFS: Create a common pgio_rpc_prepare function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 09/17] NFS: Create a common nfs_pgio_result_common function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 10/17] NFS: Create a common rpc_call_ops struct Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 11/17] NFS: Create a common rpcsetup function for reads and writes Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 12/17] NFS: Create a common pgio_error function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 13/17] NFS: Create a generic_pgio function Anna Schumaker
2014-04-30 16:13   ` Weston Andros Adamson
2014-04-30 16:22     ` Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 14/17] NFS: Create a common initiate_pgio() function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 15/17] NFS: Create a common multiple_pgios() function Anna Schumaker
2014-04-25 20:55 ` [PATCH v2 16/17] NFS: Create a common generic_pg_pgios() Anna Schumaker
2014-04-25 20:56 ` [PATCH v2 17/17] NFS: Create a common nfs_pageio_ops struct Anna Schumaker
2014-04-30 16:09 ` [PATCH v2 00/17] NFS: Create a common path used by reads and writes Weston Andros Adamson
2014-04-30 16:21   ` Anna Schumaker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).