All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/11] client-side support for "inter" SSC copy
@ 2018-10-25 21:51 Olga Kornievskaia
  2018-10-25 21:51 ` [PATCH v3 01/11] VFS move cross device copy_file_range() check into filesystems Olga Kornievskaia
                   ` (11 more replies)
  0 siblings, 12 replies; 18+ messages in thread
From: Olga Kornievskaia @ 2018-10-25 21:51 UTC (permalink / raw)
  To: trond.myklebust, anna.schumaker, viro, smfrench, miklos
  Cc: linux-nfs, linux-fsdevel, linux-cifs, linux-unionfs, linux-man

From: Olga Kornievskaia <kolga@netapp.com>

This patch series adds client-side support for doing NFSv4.2 "inter"
copy offload between different NFS servers.

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. If
an application cancels an in-flight COPY, OFFLOAD_CANCEL is sent to
both of the servers.

This patch series also include necessary client-side additions that
are performed by the destination server. The server needs an NFS
open that represents a source file without doing an actual open.
Two function nfs42_ssc_open/nfs42_ssc_close() are introduced to
accomplish it that make use of the VFS's alloc_file_pseudo() to
represent an open.

Also this particular open is marked (NFS_SVC_SSC_COPY_STATE) so
that if the destination server ever to receive stateid errors on
this stateid, it knows not to initiate state recovery (in case
when source server reboots). The recovery must be done by the
client and a new copy must be initiated. Therefore, in this case
the recovery needs to fail with EIO.

v3:
-- Combine CIFS,OverlayFS,NFS checks with the VFS patch that relaxed
the cross device check.
-- Reordered the patches to first enforce cross sb check in NFS,
relax it in VFS, then add support to the NFS, then add a patch to
NFS to check for the cross fs type instead.
-- fixed kbuild suggestion to change PTR_ERR to PTR_ERR_OR_ZERO

Olga Kornievskaia (11):
  VFS move cross device copy_file_range() check into filesystems
  VFS copy_file_range check validity of input source offset
  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
  NFS replace cross device with cross filesystem check in
    copy_file_range

 Documentation/filesystems/porting |   7 ++
 Documentation/filesystems/vfs.txt |   6 +-
 fs/cifs/cifsfs.c                  |   2 +
 fs/nfs/nfs42.h                    |  15 ++-
 fs/nfs/nfs42proc.c                | 129 ++++++++++++++++++++++---
 fs/nfs/nfs42xdr.c                 | 193 +++++++++++++++++++++++++++++++++++++-
 fs/nfs/nfs4_fs.h                  |  10 ++
 fs/nfs/nfs4client.c               |   2 +-
 fs/nfs/nfs4file.c                 | 122 +++++++++++++++++++++++-
 fs/nfs/nfs4proc.c                 |   6 +-
 fs/nfs/nfs4state.c                |  14 +++
 fs/nfs/nfs4xdr.c                  |   1 +
 fs/overlayfs/file.c               |   3 +
 fs/read_write.c                   |  12 +--
 include/linux/nfs4.h              |  25 +++++
 include/linux/nfs_fs_sb.h         |   1 +
 include/linux/nfs_xdr.h           |  17 ++++
 17 files changed, 539 insertions(+), 26 deletions(-)

-- 
1.8.3.1

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

end of thread, other threads:[~2018-10-26 12:54 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-25 21:51 [PATCH v3 00/11] client-side support for "inter" SSC copy Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 01/11] VFS move cross device copy_file_range() check into filesystems Olga Kornievskaia
2018-10-25 22:17   ` Matthew Wilcox
2018-10-25 22:52     ` Olga Kornievskaia
2018-10-25 21:51 ` [PATCH 1/1] man-page: copy_file_range(2) allow for cross-device copies Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 02/11] VFS copy_file_range check validity of input source offset Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 03/11] NFS NFSD defining nl4_servers structure needed by both Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 04/11] NFS add COPY_NOTIFY operation Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 05/11] NFS add ca_source_server<> to COPY Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 06/11] NFS also send OFFLOAD_CANCEL to source server Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 07/11] NFS inter ssc open Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 08/11] NFS skip recovery of copy open on dest server Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 09/11] NFS for "inter" copy treat ESTALE as ENOTSUPP Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 10/11] NFS COPY handle ERR_OFFLOAD_DENIED Olga Kornievskaia
2018-10-25 21:51 ` [PATCH v3 11/11] NFS replace cross device with cross filesystem check in copy_file_range Olga Kornievskaia
2018-10-25 22:27   ` Matthew Wilcox
2018-10-26 12:45     ` Olga Kornievskaia
2018-10-26 12:54       ` Matthew Wilcox

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.