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

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 that don't currently apply.  They need
	more testing, and I figured this was enough code churn already.

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.

Questions?  Comments?  Death threats?

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 pgio_common_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 instance

 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          |  94 +++------
 25 files changed, 661 insertions(+), 946 deletions(-)
 create mode 100644 fs/nfs/pageio.c

-- 
1.9.2


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

end of thread, other threads:[~2014-04-25 13:02 UTC | newest]

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

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).