Control: tag -1 moreinfo

Hi Leszek,

Leszek Dubiel <[email protected]> writes:

> Package: btrfs-progs
> Version: 4.20.1-2

[snip]

> Another system has set "default subvolume" to mount.

What was this other system?  I'm curious because, as far as I know, no
distribution officially supports the use of "set-default-subvolume".

> # relink files from subvA and subvB to new subvolume C, snap C as read only
> btrfs sub create mnt/1/subvC
> cp -a --reflink=always mnt/1/subvA_ro mnt/1/subvB_ro mnt/1/subvC

Yes, reflink means that the data contained in subvC will be nonexclusive
to subvC; however, the *subvolume* subvC (and thus subvC_ro) has no
relationship to subvolumes A and B.  You can verify this with

  # btrfs sub list -uqt /filesystem/

Meanwhile, mnt/1/subvC/{subvA_ro,subvB_ro} are no longer subvolumes.

> btrfs sub snap mnt/1/subvC -r mnt/1/subvC_ro
>
> # now send subvC to mnt/2... but ERRORS:
>
> # ERROR: cannot open subDEF/subvA_ro/fileX: No such file or directory
> btrfs send -c mnt/1/subvA_ro -c mnt/1/subvB_ro mnt/1/subvC_ro | btrfs receive 
> mnt/2/

Why should this work, and what are you trying to do with this last
command?  This looks like user error to me, because when clones are used
with a single parent, a btrfs stream is sent and recieved; Your command
appears to fail because no stream is sent.  Use this instead (I've
tested it with snapshoting subvC from A or B, then proceeding with your
deduplicated subvol merging example, then running the send | receive
command).

  # btrfs send -p mnt/1/subvA_ro -c mnt/1/subvB_ro mnt/1/subvC_ro | btrfs 
receive mnt/2/

Regards,
Nicholas

Attachment: signature.asc
Description: PGP signature

Reply via email to