Linux-NFS Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v7 00/21] client and server support for "inter" SSC copy
@ 2019-09-06 23:35 Olga Kornievskaia
  2019-09-06 23:35 ` [PATCH v7 01/21] NFS NFSD: defining nl4_servers structure needed by both Olga Kornievskaia
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: Olga Kornievskaia @ 2019-09-06 23:35 UTC (permalink / raw)
  To: trond.myklebust, anna.schumaker, bfields; +Cc: linux-nfs

From: Olga Kornievskaia <kolga@netapp.com>

As per Bruce's request submitting the client and server series together
as there is a common patch that's needed by both.

v7
--- added new patch (11/21) that checks the size of the file and
decides to either do a sync intra, or not do inter at all and fallback
on traditional copy.

v6 server-side changes
--- removed global copy notify list and instead relying only on the idr
list of stateids. Laundromat now traverses that list and if copy notify
state wasn't referenced in a lease period, state is deleted.
--- removed storing parent's stid pointer in the copy notify state.
instead storing the parent's stateid and client id then using it to
lookup the stid structure and client structure during validation of
the stateid of the READ.
--- added a refcount to the copy notify state to make sure only 1 will
delete it (as it can be delete either by the nfs4_put_stid(),
laundromat, or offload_cancel op. basically all access to the copy state
is using just one global lock now (netd->s2s_cp_lock).
--- added a type to the copy_stateid_t to distinguish copy notify state
kept by the source server and copy state used by the destination server.
--- previously with a global copy notify list, the check if client has
state before unmounting checked if the list was empty, now the code
traverses the idr list and looks for anything with a matching clientid
(again under the global s2s_cp_lock).

Olga Kornievskaia (21):
  NFS NFSD: defining nl4_servers structure needed by both
  NFS: add COPY_NOTIFY operation
  NFS: add ca_source_server<> to COPY
  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: also send OFFLOAD_CANCEL to source server
  NFS handle NFS4ERR_PARTNER_NO_AUTH error
  NFS: handle source server reboot
  NFS based on file size issue sync copy or fallback to generic copy
    offload
  NFS: replace cross device check in copy_file_range
  NFSD fill-in netloc4 structure
  NFSD add ca_source_server<> to COPY
  NFSD return nfs4_stid in nfs4_preprocess_stateid_op
  NFSD COPY_NOTIFY xdr
  NFSD add COPY_NOTIFY operation
  NFSD check stateids against copy stateids
  NFSD generalize nfsd4_compound_state flag names
  NFSD: allow inter server COPY to have a STALE source server fh
  NFSD add nfs4 inter ssc to nfsd4_copy

 fs/nfs/nfs42.h            |  15 +-
 fs/nfs/nfs42proc.c        | 199 ++++++++++++++---
 fs/nfs/nfs42xdr.c         | 190 +++++++++++++++-
 fs/nfs/nfs4_fs.h          |  11 +
 fs/nfs/nfs4client.c       |   2 +-
 fs/nfs/nfs4file.c         | 139 +++++++++++-
 fs/nfs/nfs4proc.c         |   7 +-
 fs/nfs/nfs4state.c        |  40 +++-
 fs/nfs/nfs4xdr.c          |   1 +
 fs/nfsd/Kconfig           |  10 +
 fs/nfsd/nfs4proc.c        | 440 ++++++++++++++++++++++++++++++++++----
 fs/nfsd/nfs4state.c       | 215 +++++++++++++++++--
 fs/nfsd/nfs4xdr.c         | 154 ++++++++++++-
 fs/nfsd/nfsd.h            |  32 +++
 fs/nfsd/nfsfh.h           |   5 +-
 fs/nfsd/nfssvc.c          |   6 +
 fs/nfsd/state.h           |  34 ++-
 fs/nfsd/xdr4.h            |  39 +++-
 include/linux/nfs4.h      |  25 +++
 include/linux/nfs_fs.h    |   4 +-
 include/linux/nfs_fs_sb.h |   1 +
 include/linux/nfs_xdr.h   |  17 ++
 22 files changed, 1461 insertions(+), 125 deletions(-)

-- 
2.18.1


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

end of thread, back to index

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-06 23:35 [PATCH v7 00/21] client and server support for "inter" SSC copy Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 01/21] NFS NFSD: defining nl4_servers structure needed by both Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 02/21] NFS: add COPY_NOTIFY operation Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 03/21] NFS: add ca_source_server<> to COPY Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 04/21] NFS: inter ssc open Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 05/21] NFS: skip recovery of copy open on dest server Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 06/21] NFS: for "inter" copy treat ESTALE as ENOTSUPP Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 07/21] NFS: COPY handle ERR_OFFLOAD_DENIED Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 08/21] NFS: also send OFFLOAD_CANCEL to source server Olga Kornievskaia
2019-09-06 23:35 ` [PATCH v7 09/21] NFS handle NFS4ERR_PARTNER_NO_AUTH error Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 10/21] NFS: handle source server reboot Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 11/21] NFS based on file size issue sync copy or fallback to generic copy offload Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 12/21] NFS: replace cross device check in copy_file_range Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 13/21] NFSD fill-in netloc4 structure Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 14/21] NFSD add ca_source_server<> to COPY Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 15/21] NFSD return nfs4_stid in nfs4_preprocess_stateid_op Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 16/21] NFSD COPY_NOTIFY xdr Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 17/21] NFSD add COPY_NOTIFY operation Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 18/21] NFSD check stateids against copy stateids Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 19/21] NFSD generalize nfsd4_compound_state flag names Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 20/21] NFSD: allow inter server COPY to have a STALE source server fh Olga Kornievskaia
2019-09-06 23:36 ` [PATCH v7 21/21] NFSD add nfs4 inter ssc to nfsd4_copy Olga Kornievskaia

Linux-NFS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nfs/0 linux-nfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nfs linux-nfs/ https://lore.kernel.org/linux-nfs \
		linux-nfs@vger.kernel.org
	public-inbox-index linux-nfs

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-nfs


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git