This adds the 's2sc' export option allowing inter server to server copies on the destination server. Signed-off-by: Steve Dickson <steved@xxxxxxxxxx> --- fs/nfsd/nfs4proc.c | 3 ++- include/uapi/linux/nfsd/export.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 486c5dba4b65..df3ca5f7f86f 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1654,9 +1654,10 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_copy *copy = &u->copy; __be32 status; struct nfsd4_copy *async_copy = NULL; + int s2sc = (cstate->current_fh.fh_export->ex_flags & NFSEXP_S2SC); if (!copy->cp_intra) { /* Inter server SSC */ - if (!inter_copy_offload_enable || copy->cp_synchronous) { + if (s2sc == 0 && (!inter_copy_offload_enable || copy->cp_synchronous)) { status = nfserr_notsupp; goto out; } diff --git a/include/uapi/linux/nfsd/export.h b/include/uapi/linux/nfsd/export.h index 2124ba904779..53ba8d989689 100644 --- a/include/uapi/linux/nfsd/export.h +++ b/include/uapi/linux/nfsd/export.h @@ -53,6 +53,7 @@ */ #define NFSEXP_V4ROOT 0x10000 #define NFSEXP_PNFS 0x20000 +#define NFSEXP_S2SC 0x40000 /* All flags that we claim to support. (Note we don't support NOACL.) */ #define NFSEXP_ALLFLAGS 0x3FEFF -- 2.31.1