[Ocfs2-devel] [PATCH 1/3] fs: Document the reflink(2) system call.

Chris Mason chris.mason at oracle.com
Tue May 5 09:18:44 PDT 2009


On Tue, 2009-05-05 at 17:03 +0100, Jamie Lokier wrote:
> Chris Mason wrote:
> > > > The main difference between reflink and the btrfs ioctl is that in the
> > > > btrfs ioctl the destination file must already exist.  The btrfs code can
> > > > also do range replacements in the destination file, but I'd agree with
> > > > Joel that we don't want to toss the kitchen sink into something nice and
> > > > clean like reflink.
> > > 
> > > Ah, now that I know about the BTRFS data-cloning ioctl... :-)
> > > 
> > > I'm wondering why reflink() is needed at all.  Can't it be done in
> > > userspace, using the BTRFS ioctl?  The hard part in userspace seems to
> > > be copying the file attributes, but "cp -a" and other tools manage.
> > > 
> > 
> > reflink is a subset of what the btrfs ioctl does, and that's a good
> > thing.  The way they've added support for this to ocfs2 is really cool,
> > and the same ideas could be used in other filesystems.
> > 
> > So, I'd rather see a system call that everyone can implement, and if
> > btrfs hangs on to the ioctl for extra features, even better.
> 
> Realistically, very few existing filesystems can implement this system call.
> 

I'd say that if the shared disk clustering filesystem can do it, pretty
much anyone can ;)  This doesn't mean its easy, but it is a good set of
semantics to have as the baseline.

-chris





More information about the Ocfs2-devel mailing list