Re: New copyfile system call - discuss before LSF?

From: Ric Wheeler
Date: Fri Feb 22 2013 - 03:48:18 EST

On 02/21/2013 11:13 PM, Myklebust, Trond wrote:
On Thu, 2013-02-21 at 23:05 +0100, Ric Wheeler wrote:
On 02/21/2013 09:00 PM, Paolo Bonzini wrote:
Il 21/02/2013 15:57, Ric Wheeler ha scritto:
sendfile64() pretty much already has the right arguments for a
"copyfile", however it would be nice to add a 'flags' parameter: the
NFSv4.2 version would use that to specify whether or not to copy file
That would seem to be enough to me and has the advantage that it is an
relatively obvious extension to something that is at least not totally
unknown to developers.

Do we need more than that for non-NFS paths I wonder? What does reflink
need or the SCSI mechanism?
For virt we would like to be able to specify arbitrary block ranges.
Copying an entire file helps some copy operations like storage
migration. However, it is not enough to convert the guest's offloaded
copies to host-side offloaded copies.

I don't think that the NFS protocol allows arbitrary ranges, but the SCSI
commands are ranged based.

If I remember what the windows people said at a SNIA event a few years back,
they have a requirement that the target file be pre-allocated (at least for the
SCSI based copy). Not clear to me where they iterate over that target file to do
the block range copies, but I suspect it is in their kernel.
The NFSv4.2 copy offload protocol _does_ allow the copying of arbitrary
byte ranges. The main target for that functionality is indeed
virtualisation and thin provisioning of virtual machines.

For background, here is a pointer to Fred Knight's SNIA talk on the SCSI support for offload:

and a talk from Spencer Shepler that gives some detail on the NFS spec, including the "server side copy" bits:

The talks both have references to the actual specs for the gory details.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at