[PATCH v4 00/11] NFS support for "inter" server-to-server COPY

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

 



This patch series builds on top of async COPY series.

In case, of the "inter" SSC copy files reside on different servers and
thus under different superblocks and require that VFS removes the
restriction that src and dst files must be on the same superblock.

NFS's copy_file_range() determines if the copy is "intra" or "inter"
and for "inter" it sends the COPY_NOTIFY to the source server. Then,
it would send of an asynchronous COPY to the destination server.

A couple of patches are added for the destination server acting as the
client when talking to the source server. It's now acting as a client
and needs to do a special "open" and "close". Since destination server
doesn't do an open on the wire, we "fake" create the needed data structures
and that's done in the new function nfs42_ssc_open(). To clean up this open
but not trigger the CLOSE on the wire, we have a new function
nfs42_ssc_close() that accomplishes that. This is patch "NFS inter ssc open"

Handling reboot of the destination server when client is waiting on the
CB_OFFLOAD happens when SEQUENCE discovers that destination server rebooted.
The open state initially is marked to be NFS_CLNT_DST_SSC_COPY_STATE
during the COPY. Then during the recovery if state is marked as such,
then look thru the list of copies for the server and see if any are
associated with this recovering open, if so mark the copy rebooted and
wake up the waiting copy. Upon wake up the waiting copy, will restart the
copy from scratch. This is patch "NFS skip recovery of copy open on
dest server".

If the server returned ESTALE or ERR_OFFLOAD_DENIED fallback on the 
traditional copy.

Olga Kornievskaia (11):
  VFS permit cross device vfs_copy_file_range
  NFS test for intra vs inter COPY
  NFS recover from destination server reboot for copies
  NFS NFSD defining nl4_servers structure needed by both
  NFS add COPY_NOTIFY operation
  NFS add ca_source_server<> to COPY
  NFS also send OFFLOAD_CANCEL to source server
  NFS inter ssc open
  NFS skip recovery of copy open on dest server
  NFS for "inter" copy treat ESTALE as ENOTSUPP
  NFS COPY handle ERR_OFFLOAD_DENIED

 Documentation/filesystems/vfs.txt |   6 ++
 fs/nfs/nfs42.h                    |  14 ++-
 fs/nfs/nfs42proc.c                | 141 +++++++++++++++++++++++++---
 fs/nfs/nfs42xdr.c                 | 193 +++++++++++++++++++++++++++++++++++++-
 fs/nfs/nfs4_fs.h                  |  13 +++
 fs/nfs/nfs4file.c                 | 135 +++++++++++++++++++++++++-
 fs/nfs/nfs4proc.c                 |   6 +-
 fs/nfs/nfs4state.c                |  31 +++++-
 fs/nfs/nfs4xdr.c                  |   1 +
 fs/read_write.c                   |  13 ++-
 include/linux/nfs4.h              |  25 +++++
 include/linux/nfs_fs.h            |   2 +
 include/linux/nfs_fs_sb.h         |   1 +
 include/linux/nfs_xdr.h           |  17 ++++
 14 files changed, 571 insertions(+), 27 deletions(-)

-- 
1.8.3.1

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