diff options
author | Anna Schumaker <Anna.Schumaker@netapp.com> | 2016-09-07 22:57:30 +0300 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2016-10-07 21:54:25 +0300 |
commit | 29ae7f9dc21a7dda41d78b27bbda7d427ece8ad4 (patch) | |
tree | c162c3003ef26c71d4c1d7353b6f75e75b559ab8 /fs/nfsd/xdr4.h | |
parent | 42e616167abb7e4074cfba3a2ca19fa2aba40048 (diff) | |
download | linux-29ae7f9dc21a7dda41d78b27bbda7d427ece8ad4.tar.xz |
NFSD: Implement the COPY call
I only implemented the sync version of this call, since it's the
easiest. I can simply call vfs_copy_range() and have the vfs do the
right thing for the filesystem being exported.
Signed-off-by: Anna Schumaker <bjschuma@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/xdr4.h')
-rw-r--r-- | fs/nfsd/xdr4.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/fs/nfsd/xdr4.h b/fs/nfsd/xdr4.h index beea0c5edc51..8fda4abdf3b1 100644 --- a/fs/nfsd/xdr4.h +++ b/fs/nfsd/xdr4.h @@ -503,6 +503,28 @@ struct nfsd4_clone { u64 cl_count; }; +struct nfsd42_write_res { + u64 wr_bytes_written; + u32 wr_stable_how; + nfs4_verifier wr_verifier; +}; + +struct nfsd4_copy { + /* request */ + stateid_t cp_src_stateid; + stateid_t cp_dst_stateid; + u64 cp_src_pos; + u64 cp_dst_pos; + u64 cp_count; + + /* both */ + bool cp_consecutive; + bool cp_synchronous; + + /* response */ + struct nfsd42_write_res cp_res; +}; + struct nfsd4_seek { /* request */ stateid_t seek_stateid; @@ -568,6 +590,7 @@ struct nfsd4_op { struct nfsd4_fallocate allocate; struct nfsd4_fallocate deallocate; struct nfsd4_clone clone; + struct nfsd4_copy copy; struct nfsd4_seek seek; } u; struct nfs4_replay * replay; |