Odd BTRFS COW behaviour
james.hogarth at gmail.com
Fri Jan 17 13:06:13 UTC 2014
I've encountered something that seems a little weird and wondering if
anyone has any ideas...
My home server has an ext4 root with a btrfs pool mounted at /data (with a
number of subvolumes in there).
Within /data I am able to do cp --reflink=always <source> <dest> between
subvolumes and COW works as expected.
On my laptop (built with default BTRFS option in F19 and updated to F20) if
I try and do a cp --reflink=always <source-in-root> <dest-in-home> (or vice
versa direction) it complains that:
cp: failed to clone ‘/tmptest/filename.tar.gz’ from ‘filename.tar.gz’:
Invalid cross-device link
There is one key difference I can think of ... although there are separate
subvolumes in /data (home, music, downloads, etc) only /data is directly
mounted and I'm not explictly mounting the subvolid=music on /data/music or
anything like that ...
With the laptop (from the default BTRFS install choice) / and /home are
explicitly mounted separately even though they are in the same BTRFS pool.
So far as I understand it when in the same pool cross-subvolume COW should
be valid (as shown in /data on the server) - even if technically under
Can anyone else verify the behaviour and is anyone sure of what the correct
behaviour should be - if there is a bug is it to file with cp or with
btrfs-progs/kernel for example ....
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the devel