Re: find snapshot parent?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 6.07.19 г. 23:43 ч., Ulli Horlacher wrote:
> On Sat 2019-07-06 (19:57), Nikolay Borisov wrote:
> 
>>> And how can I see whether /test/tmp/xx/ss1 is a snapshot at all?
>>> Do all snapshots have a "Parent UUID" and regular subvolumes not?
>>
>> Indeed, only snapshots have a Parent UUID.
> 
> Not all:
> 
> root@xerus:/test# btrfs subvolume snapshot -r /test /test/ss1
> Create a readonly snapshot of '/test' in '/test/ss1'
> 
> root@xerus:/test# btrfs subvolume show /test/ss1
> /test/ss1
>         Name:                   ss1
>         UUID:                   02bd07bc-0bab-3442-96be-40790e1ba9be
>         Parent UUID:            -
>         Received UUID:          -
>         Creation time:          2019-07-06 22:37:37 +0200
>         Subvolume ID:           1036
>         Generation:             9824
>         Gen at creation:        9824
>         Parent ID:              5
>         Top level ID:           5
>         Flags:                  readonly
>         Snapshot(s):
> 
> root@xerus:/test# btrfs subvolume show /test
> /test is toplevel subvolume

This is really odd, looking at create_pending_snapshot the codes : 

memcpy(new_root_item->parent_uuid, root->root_item.uuid,                                      
                        BTRFS_UUID_SIZE);  

And that's not conditional on whether the snapshot is read only or not. 
So everytime we creata a snapshot it ought to be receiving the parent's 
subvolume UUID in its parent_uuid field. And indeed testing with latest misc-next kernel: 

root@ubuntu-virtual:~# btrfs subvol create /media/scratch/subvol10 
Create subvolume '/media/scratch/subvol10'

root@ubuntu-virtual:~# btrfs subvol snapshot /media/scratch/subvol10/ /media/scratch/snap-subvol10
Create a snapshot of '/media/scratch/subvol10/' in '/media/scratch/snap-subvol10'

root@ubuntu-virtual:~# btrfs subvol snapshot -r /media/scratch/subvol10/ /media/scratch/snap-subvol10-ro
Create a readonly snapshot of '/media/scratch/subvol10/' in '/media/scratch/snap-subvol10-ro'

root@ubuntu-virtual:~# btrfs subvol show /media/scratch/snap-subvol10
snap-subvol10
	Name: 			snap-subvol10
	UUID: 			8000e96e-5d6e-3c49-a4d3-5e3868ac6972
	Parent UUID: 		6352b676-fce5-0945-88d9-745a6ae72783
	Received UUID: 		-
	Creation time: 		2019-07-07 06:40:15 +0000
	Subvolume ID: 		262
	Generation: 		17
	Gen at creation: 	17
	Parent ID: 		5
	Top level ID: 		5
	Flags: 			-
	Snapshot(s):

root@ubuntu-virtual:~# btrfs subvol show /media/scratch/snap-subvol10-ro/
snap-subvol10-ro
	Name: 			snap-subvol10-ro
	UUID: 			8964dab3-37b0-fc4e-b891-69323d3aaea0
	Parent UUID: 		6352b676-fce5-0945-88d9-745a6ae72783
	Received UUID: 		-
	Creation time: 		2019-07-07 06:40:26 +0000
	Subvolume ID: 		263
	Generation: 		18
	Gen at creation: 	18
	Parent ID: 		5
	Top level ID: 		5
	Flags: 			readonly
	Snapshot(s):

Note that the related code hasn't change in a long time. 



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux