<div dir="ltr">Hi all,<div><br></div><div>I&#39;ve encountered something that seems a little weird and wondering if anyone has any ideas...</div><div><br></div><div>My home server has an ext4 root with a btrfs pool mounted at /data (with a number of subvolumes in there).</div>
<div><br></div><div>Within /data I am able to do cp --reflink=always &lt;source&gt; &lt;dest&gt; between subvolumes and COW works as expected.</div><div><br></div><div>On my laptop (built with default BTRFS option in F19 and updated to F20) if I try and do a cp --reflink=always &lt;source-in-root&gt; &lt;dest-in-home&gt; (or vice versa direction) it complains that:</div>
<div><br></div><div><div>cp: failed to clone ‘/tmptest/filename.tar.gz’ from ‘filename.tar.gz’: Invalid cross-device link</div></div><div><br></div><div>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&#39;m not explictly mounting the subvolid=music on /data/music or anything like that ...</div>
<div><br></div><div>With the laptop (from the default BTRFS install choice) / and /home are explicitly mounted separately even though they are in the same BTRFS pool.</div><div><br></div><div>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 separate mounts.</div>
<div><br></div><div>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 ....</div><div><br></div>
<div>Cheers,</div><div><br></div><div>James</div><div><br></div></div>