On 09/08/2015 11:21 AM, Pádraig Brady wrote:
> On 04/09/15 21:16, Anna Schumaker wrote:
>> Copy system calls came up during Plumbers a couple of weeks ago, because
>> several filesystems (including NFS and XFS) are currently working on copy
>> acceleration implementations.  We haven't heard from Zach Brown in a while,
>> so I volunteered to push his patches upstream so individual filesystems
>> don't need to keep writing their own ioctls.
> 
> Just mentioning that this is just pertaining to the data, not the metadata.
> Providing metadata copying facilities would be _very_ useful, as
> most file system specific details relate to the metadata, and having
> VFS operations for that would avoid the plethora of details in each userspace 
> tool,
> and theoretically support translations between disparate metadata.

Metadata copying could be added later if somebody really wants it.

> 
>> The first three patches are a simple reposting of Zach's patches from several
>> months ago, with one minor error code fix.  The remaining patches add in a
>> fallback mechanism when filesystems don't provide a copy function.  This is
>> especially useful when doing a server-side copy on NFS (using the new COPY
>> operation in NFS v4.2).  This fallback can be disabled by passing the flag
>> COPY_REFLINK to the system call.
> 
> I see copy_file_range() is a reflink() on BTRFS?
> That's a bit surprising, as it avoids the copy completely.
> cp(1) for example considered doing a BTRFS clone by default,
> but didn't due to expectations that users actually wanted
> the data duplicated on disk for resilience reasons,
> and for performance reasons so that write latencies were
> restricted to the copy operation, rather than being
> introduced at usage time as the dest file is CoW'd.
> 
> If reflink() is a possibility for copy_file_range()
> then could it be done optionally with a flag?

The idea is that filesystems get to choose how to handle copies in the default 
case.  BTRFS could do a reflink, but NFS could do a server side copy instead.  
I can change the default behavior to only do a data copy (unless the reflink 
flag is specified) instead, if that is desirable.

What does everybody think?

Anna

> 
> thanks,
> Pádraig
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to