Can a snapshot become a parent subvolume when its parent is deleted?
So, I had btrfs_pool1 that was trashed/lost as discussed here recently.
I did btrfs send btrfs_pool2/root_ro.date | btrfs receive /mnt/btrfs_pool1
Then btrfs subvolume snapshot root_ro.date root
Now, after I delete root_ro.date on btrfs_pool1, shouldn't root become a parent subvolume?
Right now, I have:
legolas:/mnt/btrfs_pool1# btrfs subvolume list -q . ID 390 gen 5954 top level 5 parent_uuid faea7df8-d51a-6b4b-994b-887d55267cce path root legolas:/mnt/btrfs_pool1# btrfs subvolume list -u . |grep faea7df8-d51a-6b4b-994b-887d55267cce legolas:/mnt/btrfs_pool1#
Is it possible not to have a parent?
If so, shouldn't you become a parent at that time?
Thanks,
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ | PGP 1024R/763BE901Quoted 8 lines · Marc MERLIN
So, I had
btrfs_pool1that was trashed/lost as discussed here recently.I did btrfs send btrfs_pool2/root_ro.date | btrfs receive
/mnt/btrfs_pool1Then btrfs subvolume snapshot root_ro.date root
Now, after I delete root_ro.date on
btrfs_pool1, shouldn't root become a parent subvolume?
There's no explicit hierarchy like this. There's no state "parent" or "child".
If a subvolume is created by snapshotting another subvolume, the new subvolume refers to the uuid of its source as the parent uuid. And the original subvolume, at least in the UI, contains a list of its snapshots but I don't know that this metadata is literally associated with the subvolume rather than inferred from its snapshots, all of which contain the "parent" subvolume's uuid as a parent_uuid.
Quoted 10 lines
Right now, I have:
legolas:/mnt/btrfs_pool1# btrfs subvolume list -q . ID 390 gen 5954 top level 5 parent_uuid faea7df8-d51a-6b4b-994b-887d55267cce path root legolas:/mnt/btrfs_pool1# btrfs subvolume list -u . |grep faea7df8-d51a-6b4b-994b-887d55267cce legolas:/mnt/btrfs_pool1#Is it possible not to have a parent?
If so, shouldn't you become a parent at that time?
No. The listed subvolume parent_uuid is the subvolume uuid for now deleted subvolume root_ro.date. Even though it's deleted, the subvolume created from it still retains the parent_uuid reference.
If you snapshot root, you could say it "becomes a parent" but it's only a metaphor it's not something that literally happens on disk. All I'm aware of that happens is the new subvolume gets its own uuid and its parent_uuid is set to match the subvolume uuid it was created from.
Chris Murphy
Quoted 12 lines · Chris Murphy
Quoted 8 lines · Marc MERLIN
So, I had
btrfs_pool1that was trashed/lost as discussed here recently.I did btrfs send btrfs_pool2/root_ro.date | btrfs receive
/mnt/btrfs_pool1Then btrfs subvolume snapshot root_ro.date root
Now, after I delete root_ro.date on
btrfs_pool1, shouldn't root become a parent subvolume?
Quoted 8 lines
There's no explicit hierarchy like this. There's no state "parent" or "child".
If a subvolume is created by snapshotting another subvolume, the new subvolume refers to the uuid of its source as the parent uuid. And the original subvolume, at least in the UI, contains a list of its snapshots but I don't know that this metadata is literally associated with the subvolume rather than inferred from its snapshots, all of which contain the "parent" subvolume's uuid as a
parent_uuid.
Right. So basically the parent UUID can go orphanned, which I found a bit surprising.
Quoted 6 lines
Quoted 6 lines
Right now, I have:
legolas:/mnt/btrfs_pool1# btrfs subvolume list -q . ID 390 gen 5954 top level 5 parent_uuid faea7df8-d51a-6b4b-994b-887d55267cce path root legolas:/mnt/btrfs_pool1# btrfs subvolume list -u . |grep faea7df8-d51a-6b4b-994b-887d55267cce legolas:/mnt/btrfs_pool1#
Quoted 7 lines
Quoted 3 lines
Is it possible not to have a parent?
If so, shouldn't you become a parent at that time?
No. The listed subvolume
parent_uuidis the subvolume uuid for now deleted subvolume root_ro.date. Even though it's deleted, the subvolume created from it still retains theparent_uuidreference.
Yep. If you think about daemonized processed that get inherited by init, shouldn't parent-less snapshots change their parent uuid to '-'
Quoted 5 lines
If you snapshot root, you could say it "becomes a parent" but it's only a metaphor it's not something that literally happens on disk. All I'm aware of that happens is the new subvolume gets its own uuid and its
parent_uuidis set to match the subvolume uuid it was created from.
You are correct. The blocks don't care who is the parent and child subvolume, they're just references.
But for management purposes by us humans :) it's useful to know what's going on.
Would a developer agree to making parent less subvolumes have their parent become '-'?
Thanks,
Marc
Signature · 4 lines
"A mouse is a device used to point at the xterm you want to type in" - A.S.R.
Microsoft is to operating systems ....
.... what McDonalds is to gourmet cooking
Home page: http://marc.merlins.org/ | PGP 1024R/763BE901