> I am trying to figure out which means "top level" in the
> output of "btrfs sub list"
The terminology (and sometimes the detailed behaviour) of Btrfs
is not extremely consistent, I guess because of permissive
editorship of the design, in a "let 1000 flowers bloom" sort
of fashion so that does not matter a lot.
> [ ... ] outputs a "top level ID" equal to the "parent ID" (on
> the basis of the code).
You could have used option '-p' and it would have printed out
both "top level ID" and "parent ID" for extra enlightenment.
> But I am still asking which would be the RIGHT "top level id".
But perhaps one of them is now irrelevant, because 'man btrfs
subvolume says:
"If -p is given, then parent <ID> is added to the output
between ID and top level. The parent’s ID may be used at mount
time via the subvolrootid= option."
and 'man 5 btrfs' says:
"subvolrootid=objectid
(irrelevant since: 3.2, formally deprecated since: 3.10)
A workaround option from times (pre 3.2) when it was not
possible to mount a subvolume that did not reside directly
under the toplevel subvolume."
> My Hypothesis, it should be the ID of the root subvolume ( or
> 5 if it is not mounted). [ ... ]
Well, a POSIX filesystem typically has a root directory, and it
can be mounted as the system root or any other point. A Btrfs
filesystem has multiple root directories, that are mounted by
default "somewhere" (a design decision that I think was unwise,
but "whatever").
The subvolume containing the mountpoint directory of another
subvolume's root directory is is no way or sense its "parent",
as there is no derivation relationship; root directories are
independent of each other and their mountpoint is (or should be)
a runtime entity.
If there is a "parent" relationship that maybe be between
snapshot and origin subvolume (ignoring 'send'/'receive'...),
and I have created a few plain and snapshot subvolumes and I get
this rather "confusing" output from version 4.4 of the 'btrfs'
command:
base# btrfs subvol list -uq -a -p /fs/sda7 | sort -k 6,6n -k 8,8
ID 257 gen 718 parent 5 top level 5 parent_uuid - uuid 2d7b0606-76d9-f24b-8f75-d20a5c0f3521 path =
ID 356 gen 719 parent 5 top level 5 parent_uuid - uuid 9d201029-d2bf-2f43-8381-8c19d090483e path sl1
ID 358 gen 719 parent 5 top level 5 parent_uuid 2d7b0606-76d9-f24b-8f75-d20a5c0f3521 uuid bc0e6a33-b5dc-4d48-b2db-1452b705d227 path sn1
ID 357 gen 715 parent 356 top level 356 parent_uuid - uuid 2abc6399-956d-894f-836b-32eb5b603654 path <FS_TREE>/sl1/sl2
ID 360 gen 718 parent 356 top level 356 parent_uuid 2d7b0606-76d9-f24b-8f75-d20a5c0f3521 uuid ad896822-e9a5-c645-8cfd-0aca7f5a2298 path <FS_TREE>/sl1/sn3
ID 361 gen 719 parent 356 top level 356 parent_uuid bc0e6a33-b5dc-4d48-b2db-1452b705d227 uuid 9c1390d2-e485-cb4a-a41b-670248587bfb path <FS_TREE>/sl1/sn4
ID 359 gen 717 parent 358 top level 358 parent_uuid 2d7b0606-76d9-f24b-8f75-d20a5c0f3521 uuid 72d4f943-2881-6442-b398-2277be8f2fec path <FS_TREE>/sn1/sn2
The "confusion" is that for some subvolumes the "parent" is the
same but the "parent_uuid" is different, and viceversa.
IIRC this has already been mentioned in part elsewhere.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html