Re: [PATCH RFC 00/11] NFS/NFSD: add NFSv42 CLONE operation support

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

 



On Wed, Aug 26, 2015 at 12:01 AM, Anna Schumaker
<Anna.Schumaker@xxxxxxxxxx> wrote:
> Hey Tao,
>
> On 08/25/2015 11:42 AM, Peng Tao wrote:
>> On Tue, Aug 25, 2015 at 11:33 PM, Peng Tao <tao.peng@xxxxxxxxxxxxxxx> wrote:
>>> Hi all,
>>>
>>> This patchset adds NFSv42 COPY support to nfs and nfsd. As suggested by Christoph,
>>> it pulls btrfs BTRFS_IOC_CLONE/BTRFS_IOC_CLONE_RANGE ioctls to generic layer and
>>> adds a new file operation to call down to file systems. Then the CLONE ioctl
>>> is implemented for NFS and NFSD.
>>>
>>> I took a slightly different approach from Anna's NFS42 COPY implementation
>>> (http://www.spinics.net/lists/linux-nfs/msg53009.html) mainly because CLONE
>>> has different requirements than COPY. And the main differences between the two are:
>>> 1. well, CLONE is supported rather than COPY.
>>> 2. vfs_file_clone_range() does not expect file systems to do data copy, and thus
>>> no rw_verify_area() required.
>>> 3. clone does not expect partial success.
>>> 4. clone does not fall back to data copy if underlying storage does not support it.
>>> 5. no new system call required. We reuse existing BTRFS_IOC_CLONE/BTRFS_IOC_CLONE_RANGE
>>> and make it generic to all file systems.
>> I should have mentioned that this overlaps with Anna's COPY work.
>> We'll deal with the conflicts after figuring out what to do with both.
>
> Since we're both working on this at the same time, can you change the title of this patch series to "NFSv42 CLONE"?  I got confused when I saw these patches :)
>
oh, sorry my bad. I definitely was thinking about CLONE when typing
COPY in the mail subject line... now fixed.

Thanks,
Tao

> Thanks,
> Anna
>
>>
>> Cheers,
>> Tao
>>
>>>
>>> Cheers,
>>> Tao
>>>
>>> Anna Schumaker (2):
>>>   nfsd: Pass filehandle to nfs4_preprocess_stateid_op()
>>>   NFSD: Implement the CLONE call
>>>
>>> Peng Tao (9):
>>>   vfs: pull btrfs clone API to vfs layer
>>>   vfs/btrfs: add .clone_range file operation
>>>   nfs42: decode_layoutstats does not need res parameter
>>>   nfs42: remove unused declaration
>>>   nfs42: add CLONE xdr functions
>>>   nfs42: add CLONE proc functions
>>>   nfs42: add .copy_range file operation
>>>   nfs: get clone_blksize when probing fsinfo
>>>   nfs42: respect clone_blksize
>>>
>>>  fs/btrfs/ctree.h           |   2 +
>>>  fs/btrfs/file.c            |   1 +
>>>  fs/btrfs/ioctl.c           |  68 ++++--------------------------
>>>  fs/ioctl.c                 |  30 +++++++++++++
>>>  fs/nfs/client.c            |   1 +
>>>  fs/nfs/nfs42.h             |   3 +-
>>>  fs/nfs/nfs42proc.c         |  71 +++++++++++++++++++++++++++++++
>>>  fs/nfs/nfs42xdr.c          | 102 +++++++++++++++++++++++++++++++++++++++++++--
>>>  fs/nfs/nfs4file.c          |  58 ++++++++++++++++++++++++++
>>>  fs/nfs/nfs4proc.c          |   4 +-
>>>  fs/nfs/nfs4xdr.c           |  26 ++++++++++++
>>>  fs/nfsd/nfs4proc.c         |  91 ++++++++++++++++++++++++++++++++++++----
>>>  fs/nfsd/nfs4state.c        |   5 +--
>>>  fs/nfsd/nfs4xdr.c          |  21 ++++++++++
>>>  fs/nfsd/state.h            |   4 +-
>>>  fs/nfsd/vfs.c              |   7 ++++
>>>  fs/nfsd/vfs.h              |   1 +
>>>  fs/nfsd/xdr4.h             |  10 +++++
>>>  fs/read_write.c            |  45 ++++++++++++++++++++
>>>  include/linux/fs.h         |   4 ++
>>>  include/linux/nfs4.h       |   7 +++-
>>>  include/linux/nfs_fs_sb.h  |   2 +
>>>  include/linux/nfs_xdr.h    |  20 +++++++++
>>>  include/uapi/linux/btrfs.h |  10 -----
>>>  include/uapi/linux/fs.h    |   9 ++++
>>>  25 files changed, 510 insertions(+), 92 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
--
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