Here's a hypothetical setup on a recent linux kernel:
/dev/sda1 is formatted as btrfs
I then run the following to make two subvolumes on the the root of /dev/sda1:
$ mount /dev/sda1 /mnt $ btrfs subvolume create /mnt/a $ btrfs subvolume create /mnt/b $ umount /mnt
Now I wish to mount both those subvolumes at the same time on two different mount points:
$ mount -o subvol=a /dev/sda1 /a $ mount -o subvol=b /dev/sda1 /b
Here's the problem. I tried this with a file as block device (using loop) and it worked fine (at least for touching two files in each). However, after installing a complete system, putting the root in one subvolume, and the home directory in another, mounting both at boot, I got an error telling me that the underlying device was "write protected" and at first attempt to read the home directory content led to a kernel crash.
I'd like to know if what I want to do (mounting a single block device more than once with different mount options) is actually allowed by btrfs or in general by the os.