[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130514220440.GN16385@lenny.home.zabbo.net>
Date: Tue, 14 May 2013 15:04:40 -0700
From: Zach Brown <zab@...hat.com>
To: Dave Chinner <david@...morbit.com>
Cc: "Martin K. Petersen" <martin.petersen@...cle.com>,
Trond Myklebust <Trond.Myklebust@...app.com>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
linux-btrfs@...r.kernel.org, linux-nfs@...r.kernel.org
Subject: Re: [RFC v0 0/4] sys_copy_range() rough draft
On Wed, May 15, 2013 at 07:42:51AM +1000, Dave Chinner wrote:
> On Tue, May 14, 2013 at 02:15:22PM -0700, Zach Brown wrote:
> > I'm going to keep hacking away at this. My next step is to get ext4
> > supporting .copy_range, probably with a quick hack to copy the
> > contents of bios. Hopefully that'll give enough time to also integrate
> > review feedback.
>
> Wouldn't the easiest "support all filesystems" hack just be to add
> a destination offset parameter to do_splice_direct() and call that
> when the filesystem doesn't supply a ->copy_range method? i.e. use
> the mechanisms we already have for copying from one file to another
> via the page cache as efficiently as possible?
Probably; and this in-kernel buffered fallback is particularly desirable
for nfsd when the exported fs doesn't provide .copy_range. Having nfsd
service the COPY op is still a significant win over having the client
move the data backand forth over the wire.
But in that quote above I was talking about implementing .copy_range in
ext4 as though it could use XCOPY today. I'd like to get a feel for how
bad it's going to be to juggle the bio XCOPY IO with unwritten extent
conversion, RMW with overlapping existing blocks, i_size advancing, etc.
(It's so much like O_DIRECT that I'm already crying a little.)
- z
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists