All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] READ_PLUS rough draft
@ 2014-01-06 21:57 Anna Schumaker
  2014-01-06 21:57 ` [PATCH 1/3] NFSD: Implement READ_PLUS support Anna Schumaker
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Anna Schumaker @ 2014-01-06 21:57 UTC (permalink / raw)
  To: Trond.Myklebust, linux-nfs, bfields

These patches are my initial implementation of READ_PLUS.  I still have a
few issues to work out before they can be applied, but I wanted to submit
them anyway to get feedback before going much further.  These patches were
developed on top of my earlier SEEK and WRITE_PLUS patches, and probably
won't apply cleanly without them (I am willing to reorder things if necessary!).

On the server side, I handle the cases where a file is 100% hole, 100% data
or hole followed by data.  Any holes after a data segment will be expanded
to zeros on the wire.  This is due to a limitation in the the NFSD
encode-to-page function that will adjust pointers to point to the xdr tail
after reading a file to the "pages" section.  Bruce, do you have any
suggestions here?

The client side needs to punch holes after decoding page information, since
data on pages will be aligned at the start of the page array.  So a file that
is <HOLE><DATA> will store the hole information, decode the data, and then
punch the hole before returning.  I think it would be better to use the
provided offset field to decode everything to their final locations, but I'm
struggling to come up with a clean way of doing so using the code that is
already there.

Let me know what you all think!
Anna

Anna Schumaker (3):
  NFSD: Implement READ_PLUS support
  SUNRPC: This patch adds functions for shifting page data
  NFS: Client side changes for READ_PLUS

 fs/nfs/nfs4client.c        |   2 +-
 fs/nfs/nfs4proc.c          |  23 +++++-
 fs/nfs/nfs4xdr.c           | 191 +++++++++++++++++++++++++++++++++++++++++++++
 fs/nfsd/Kconfig            |  14 ++++
 fs/nfsd/nfs4proc.c         |   9 +++
 fs/nfsd/nfs4xdr.c          | 177 ++++++++++++++++++++++++++++++++++++-----
 include/linux/nfs4.h       |   1 +
 include/linux/nfs_fs_sb.h  |   1 +
 include/linux/sunrpc/xdr.h |   1 +
 net/sunrpc/xdr.c           | 115 ++++++++++++++++++++++++++-
 10 files changed, 511 insertions(+), 23 deletions(-)

-- 
1.8.5.2


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

end of thread, other threads:[~2014-01-07 18:11 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-06 21:57 [PATCH 0/3] READ_PLUS rough draft Anna Schumaker
2014-01-06 21:57 ` [PATCH 1/3] NFSD: Implement READ_PLUS support Anna Schumaker
2014-01-06 21:57 ` [PATCH 2/3] SUNRPC: This patch adds functions for shifting page data Anna Schumaker
2014-01-06 21:57 ` [PATCH 3/3] NFS: Client side changes for READ_PLUS Anna Schumaker
2014-01-06 22:32 ` [PATCH 0/3] READ_PLUS rough draft J. Bruce Fields
2014-01-06 22:49   ` Trond Myklebust
2014-01-07 14:42   ` Anna Schumaker
2014-01-07 14:56     ` J. Bruce Fields
2014-01-07 15:38       ` Anna Schumaker
2014-01-07 18:11         ` J. Bruce Fields

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.