From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ric Wheeler Subject: Re: New copyfile system call - discuss before LSF? Date: Thu, 21 Feb 2013 23:05:31 +0100 Message-ID: <51269A2B.7070000@redhat.com> References: <512606DF.5050706@redhat.com> <4FA345DA4F4AE44899BD2B03EEEC2FA9235D998C@SACEXCMBX04-PRD.hq.netapp.com> <512635D2.4090207@redhat.com> <51267CEB.8070805@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "Myklebust, Trond" , Linux FS Devel , "linux-kernel@vger.kernel.org" , "Chris L. Mason" , Christoph Hellwig , Alexander Viro , "Martin K. Petersen" , Hannes Reinecke , Joel Becker To: Paolo Bonzini Return-path: In-Reply-To: <51267CEB.8070805@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org 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 >>> metadata. >> 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. > > Paolo 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. Ric