[PATCH 0/3] READ_PLUS rough draft

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux