Nirbheek Chauhan 5eba978497 GFile: Add Btrfs clone ioctl support
The attached patch adds support for the btrfs "clone" ioctl which
makes Copy-on-Write reflinks, resulting in cheap O(1) copies when
source/destination are on the same filesystem. The ioctl itself is
quite straightforward, and GNU coreutils has had support since 7.5
(--reflink=auto --sparse=auto).

The ioctl only operates on regular files and symlinks, and always
follows symlinks; checks have been added accordingly.

This patch would be very useful for everyone who uses btrfs
filesystems (Meego folks for instance). On systems that don't have
btrfs, or if the the source is not on a btrfs filesystem, the ioctl
returns EINVAL, and the fallback code is triggered. Hence this will
cause no problems for non-btrfs users.

https://bugzilla.gnome.org/show_bug.cgi?id=626497
2013-01-05 14:21:25 -05:00
..
2012-03-05 06:18:24 -05:00
2012-12-19 09:10:12 -05:00
2012-11-17 16:32:23 +01:00
2012-11-15 14:19:06 -05:00
2012-12-12 15:20:22 +01:00
2011-06-04 10:45:54 -04:00
2009-03-31 19:39:16 -04:00
2012-02-02 16:22:42 +01:00
2012-07-03 21:14:41 -04:00
2012-11-15 14:19:06 -05:00
2012-12-12 15:20:22 +01:00
2012-04-30 09:28:42 -04:00
2010-07-07 19:53:22 -04:00
2013-01-05 14:21:25 -05:00
2012-11-28 00:58:03 -05:00
2012-08-16 23:02:41 -04:00
2012-12-12 15:20:22 +01:00
2012-01-01 19:01:14 +01:00
2012-10-16 09:39:24 -04:00
2011-06-07 08:55:31 +08:00
2012-11-29 16:29:47 -03:00
2010-07-07 19:53:22 -04:00
2011-02-08 10:05:00 -05:00
2012-11-29 14:07:27 -05:00
2012-12-12 15:20:22 +01:00
2012-12-12 15:20:22 +01:00
2012-12-12 15:20:22 +01:00
2011-12-10 21:46:39 -05:00
2011-02-08 10:05:00 -05:00
2012-08-19 02:19:27 -04:00
2012-08-19 02:21:02 -04:00
2012-08-19 02:21:02 -04:00
2011-06-04 18:48:19 -04:00
2012-08-18 23:15:58 -04:00
2012-12-12 15:20:22 +01:00
2012-01-13 17:12:57 +01:00
2012-12-29 00:22:34 -05:00
2011-08-29 14:49:32 -04:00
2010-04-16 23:23:40 -04:00
2011-10-16 21:41:15 -04:00
2011-10-02 22:33:10 -04:00
2012-12-12 15:20:22 +01:00
2012-12-12 15:20:22 +01:00
2012-12-12 15:20:22 +01:00
2012-09-23 02:18:56 -04:00
2012-12-12 15:20:22 +01:00
2012-07-03 21:14:41 -04:00
2012-11-15 14:19:06 -05:00
2012-08-18 23:15:58 -04:00
2012-12-17 19:15:29 -05:00
2010-07-07 19:53:22 -04:00