btrfs: allow mounting btrfs subvolumes with different ro/rw options
authorHarald Hoyer <harald@redhat.com>
Tue, 19 Nov 2013 10:36:05 +0000 (11:36 +0100)
committerChris Mason <clm@fb.com>
Thu, 10 Apr 2014 20:32:50 +0000 (13:32 -0700)
commit0723a0473fb48a1c93b113a28665b64ce5faf35a
tree59f5dc31dd82e06dc8d836b4544e676c7b85d23d
parent36523e95129c0e69bf1592cd009261b1c6d96e77
btrfs: allow mounting btrfs subvolumes with different ro/rw options

Given the following /etc/fstab entries:

/dev/sda3 /mnt/foo btrfs subvol=foo,ro 0 0
/dev/sda3 /mnt/bar btrfs subvol=bar,rw 0 0

you can't issue:

$ mount /mnt/foo
$ mount /mnt/bar

You would have to do:

$ mount /mnt/foo
$ mount -o remount,rw /mnt/foo
$ mount --bind -o remount,ro /mnt/foo
$ mount /mnt/bar

or

$ mount /mnt/bar
$ mount --rw /mnt/foo
$ mount --bind -o remount,ro /mnt/foo

With this patch you can do

$ mount /mnt/foo
$ mount /mnt/bar

$ cat /proc/self/mountinfo
49 33 0:41 /foo /mnt/foo ro,relatime shared:36 - btrfs /dev/sda3 rw,ssd,space_cache
87 33 0:41 /bar /mnt/bar rw,relatime shared:74 - btrfs /dev/sda3 rw,ssd,space_cache

Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/super.c