Return-Path: Received: from aserp1040.oracle.com ([141.146.126.69]:33356 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754354AbbIIVmu (ORCPT ); Wed, 9 Sep 2015 17:42:50 -0400 Date: Wed, 9 Sep 2015 14:42:10 -0700 From: "Darrick J. Wong" To: Anna Schumaker Cc: Chris Mason , Trond Myklebust , Andy Lutomirski , =?iso-8859-1?Q?P=E1draig?= Brady , Linux NFS Mailing List , Linux btrfs Developers List , Linux FS Devel , Linux API , Zach Brown , Al Viro , Michael Kerrisk-manpages , William Andros Adamson , Christoph Hellwig , Coreutils Subject: Re: [PATCH v1 0/8] VFS: In-kernel copy system call Message-ID: <20150909214210.GC10399@birch.djwong.org> References: <55EF3EFD.3080302@draigBrady.com> <20150908212907.GD30681@birch.djwong.org> <20150908223959.GE30681@birch.djwong.org> <20150909200921.GD9511@ret.masoncoding.com> <20150909203805.GE9511@ret.masoncoding.com> <55F0997E.1040105@Netapp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <55F0997E.1040105@Netapp.com> Sender: linux-nfs-owner@vger.kernel.org List-ID: On Wed, Sep 09, 2015 at 04:41:34PM -0400, Anna Schumaker wrote: > On 09/09/2015 04:38 PM, Chris Mason wrote: > > On Wed, Sep 09, 2015 at 04:26:58PM -0400, Trond Myklebust wrote: > >> On Wed, Sep 9, 2015 at 4:09 PM, Chris Mason wrote: > >>> On Tue, Sep 08, 2015 at 04:08:43PM -0700, Andy Lutomirski wrote: > >>>> On Tue, Sep 8, 2015 at 3:39 PM, Darrick J. Wong wrote: > >>>>> On Tue, Sep 08, 2015 at 02:45:39PM -0700, Andy Lutomirski wrote: > >>>>>> What I meant by this was: if you ask for "regular copy", you may end > >>>>>> up with a reflink anyway. Anyway, how can you reflink a range and > >>>>>> have the contents *not* be the same? > >>>>> > >>>>> reflink forcibly remaps fd_dest's range to fd_src's range. If they didn't > >>>>> match before, they will afterwards. > >>>>> > >>>>> dedupe remaps fd_dest's range to fd_src's range only if they match, of course. > >>>>> > >>>>> Perhaps I should have said "...if the contents are the same before the call"? > >>>>> > >>>> > >>>> Oh, I see. > >>>> > >>>> Can we have a clean way to figure out whether two file ranges are the > >>>> same in a way that allows false negatives? I.e. return 1 if the > >>>> ranges are reflinks of each other and 0 if not? Pretty please? I've > >>>> implemented that in the past on btrfs by syncing the ranges and then > >>>> comparing FIEMAP output, but that's hideous. > >>> > >>> I'd almost rather have a separate call, maybe unshare_file_range()? > >>> > >> > >> Doesn't it make more sense to put that functionality in fallocate()? [slightly off-topic] How about FALLOC_FL_UNSHARE_RANGE? I've been looking for a place to land an unshare op that isn't chattr +C, and fallocate seems like a better fit anyway. --D > > > > That works too, I'm just hoping to keep the copy_file_range stuff > > simple. > > I agree with keeping copy_file_range() simple, especially for the initial > merge. Extra stuff can always be added in later :) > > Anna > > > > > -chris > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-api" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html