Re: subvolumes: default and IDs

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

 



On 07/30/2012 03:56 PM, Florian Lindner wrote:
Hey!

I recently starting playing with btrfs and subvolume, but it has left
me puzzled:
Distribution is Archlinux, Kernel is 3.4.6.


root@horus /mnt # mkfs.btrfs -L test /dev/sdb1

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label test on /dev/sdb1
         nodesize 4096 leafsize 4096 sectorsize 4096 size 2.73TB
Btrfs Btrfs v0.19
root@horus /mnt # mount /dev/sdb1 test
root@horus /mnt # cd test
root@horus /mnt/test # btrfs subvolume create sv1
Create subvolume './sv1'
root@horus /mnt/test # btrfs subvolume create sv2
Create subvolume './sv2'
root@horus /mnt/test # touch sv1/sv1.file
root@horus /mnt/test # touch sv2/sv2.file
root@horus /mnt/test # btrfs subvolume get-default .
ID 256 top level 5 path sv1
ID 259 top level 5 path sv2
<<<

What is the default subvolume now? How can I tell?


root@horus /mnt/test # btrfs subvolume set-default 259 .
root@horus /mnt/test # btrfs subvolume get-default .
ID 256 top level 5 path sv1
ID 259 top level 5 path sv2
<<<

Seems to have changed nothing....?


root@horus /mnt/test # cd ..
root@horus /mnt # umount test && mount /dev/sdb1 test
root@horus /mnt # ls test
sv2.file
<<<

Ah, sv2 seems to be default, like I had set it.


root@horus /mnt # btrfs subvolume set-default 5 test
root@horus /mnt # umount test && /mnt # mount /dev/sdb1 test
root@horus /mnt # ls test
sv1/  sv2/
<<<

Ok, 5 seems to be the root subvolume id. Is it always like that? I
remembered to have read somewhere it was 0 ? (which makes a kind of
more sense for me)


root@horus /mnt # btrfs subvolume set-default 256 test
root@horus /mnt # umount test && mount /dev/sdb1 test
root@horus /mnt # ls test
sv1.file
<<<

Fine! But:


root@horus /mnt # btrfs subvolume set-default 0 test
root@horus /mnt # umount test && mount /dev/sdb1 test
root@horus /mnt # ls test
sv1.file
<<<

set-default 0 seems to do nothing but does not produce an error
either. What about subvolume 0? Still I can do:


root@horus /mnt # umount test
root@horus /mnt # mount -o subvolid=0 /dev/sdb1 test
root@horus /mnt # ls test
sv1/  sv2/
<<<

Ok, here 0 as subvolid works. What about subvolid=5?


root@horus /mnt # umount test
root@horus /mnt # mount -o subvolid=5 /dev/sdb1 test
root@horus /mnt # ls test
sv1/  sv2/
<<<

Works too.

Sorry for the lengthy posting, but writing this posting has puzzled me
even more I was yesterday. I hope someone could shed some light on it.


Hi Florian,

Thanks for reporting these!

They are old bugs that had been fixed recently in latest btrfs progs,
you can checkout the latest btrfs-progs from
git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git

subvolid=0 will be translated to subvolid=5 since 5 indicates btrfs' fs tree (the root subvolume as you mentioned)

thanks,
liubo

Thanks!

Florian
--
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


--
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


[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