[Bug 10170] rsync should support reflink similar to cp --reflink

samba-bugs at samba.org samba-bugs at samba.org
Thu Mar 26 19:40:43 MDT 2015


--- Comment #5 from kdave <dave at jikos.cz> ---
(In reply to David Taylor from comment #2)

A few things:

* thanks for working on reflink support in rsync :)

* btrfs is not the only filesystem to support reflink, ocfs2 does as well, so
you might make the formulations more generic

* for btrfs, there are 2 types of the cloning ioctl:
 1) that does file-to-file clone (same for ocfs2), IOC_CLONE
 2) range cloning, IOC_CLONE_RANGE

I believe for rsync option 2 should be implemented in the similar way --inplace

* the proposed patch does not work in all scenarios:

$ btrfs subvol create subv1
$ btrfs subvol create subv2
$ <create big file subv1/testfile>
$ rsync --reflink subv1/testfile subv2

according to strace, rsync does not call the clone ioctl at all (none of the
forked processes)

$ rsync --reflink-always subv1/testfile subv2
    240,475,844 100%   43.54MB/s    0:00:05 (xfr#1, to-chk=0/1)
rsync: open "/subv2/testfile": No such file or directory (2)
rsync: reflink of "/subv2/.testfile.8bxNk0" failed: No such file or directory
rsync error: some files/attrs were not transferred (see previous errors) (code
23) at main.c(1165) [sender=3.1.2dev]

and the target file is not created, the same command without --reflink works.

* for speed comparison, I did 'cp --reflink subv1/testfile subv2' and it takes
near to no time, compared to 5 seconds for bare copy, I'm expecting that rsync
--reflink would take comparable time to cp+reflink

You are receiving this mail because:
You are the QA Contact for the bug.

More information about the rsync mailing list