Re: subvolumes: default and IDs
From: Liu Bo <hidden>
Date: 2012-07-30 12:18:22
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.quoted
quoted
quoted
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?quoted
quoted
quoted
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....?quoted
quoted
quoted
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.quoted
quoted
quoted
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)quoted
quoted
quoted
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:quoted
quoted
quoted
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:quoted
quoted
quoted
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?quoted
quoted
quoted
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html