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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2009-05-05 at 16:36 +0100, Jamie Lokier wrote:
> Chris Mason wrote:
> > The btrfs implementation is just that you have two separate files
> > pointing to the same extents on disk.  Each file has a reference on each
> > extent, and deleting or chowning fileA doesn't change the metadata in
> > fileB.
> > 
> > The btrfs cow code makes sure that modifications in either file (even
> > when mounted in -o nodatacow) are written to new extents instead of
> > changing the original.  If you write one block in a 1TB file, the new
> > space used by the clone is only one block.  (Thanks to the ceph
> > developers for coding all of this up a while ago).
> 
> Ooh, nice.
> 
> > 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.

-chris


--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux