On 01.07.2014 18:36, Chris Mason wrote: > On 07/01/2014 11:32 AM, David Sterba wrote: >> (adding Harald to CC) >> >> On Tue, Jul 01, 2014 at 05:30:01PM +0800, Qu Wenruo wrote: >>> This reverts commit 0723a0473fb48a1c93b113a28665b64ce5faf35a. >>> This commit has the following problem: >>> 1) Break the ro mount rule. >>> When users mount the whole btrfs ro, it is still possible to mount >>> subvol rw and change the contents. Which make the whole fs ro mount >>> non-sense. >> >> The proposed usecase was to allow mounting subvolumes with different >> ro/rw flags, and this makes sense to me (provided that the whole >> filesystem is mounted rw). >> >> Anything else seems to lead to all the internal problems you point >> below. I'm not even sure if mounting the first subvolume 'ro' should >> imply that the whole filesystem is ro or not. >> >>> 2) Cause whole btrfs ro/rw mount change fails. >>> When mount a subvol ro first, when you can't mount the whole fs mounted >>> rw. This is due to the check in btrfs_mount() which returns -EBUSY, >>> which is OK for single fs to prevent mount fs ro in one mount point and >>> mount the same fs rw in other mount point. >>> Step to reproduce: >>> mount -o subvol=subv,ro /dev/sda6 /mnt/btrfs >>> mount -o rw /dev/sda6 /mnt/btrfs <-this will fail >> >> Yeah, so first ro means whole filesystem is ro. >> >>> 3) Kernel warn in vfs. >>> When mount the whole fs ro, and mount a subvol ro, kernel warning will >>> show in fs/sync.c complaining s_umount rwsem is not locked. >>> Since this remount is not called by VFS, so s_mounts rwsem is not >>> correctly locked. >> >> That's serious. > > Agreed, we'll pull this out until we get a better handle on things. > Thanks for spending time on it. > > -chris >
My patch was initially only a request for comments: - patch pointed out the problem - provided a possible solution/workaround - even has "FIXME" in the code :) So, what I was hoping, that somebody else with more VFS knowledge than me would step up and come up with a sane solution. Pull it out, if the patch causes problems, but _please_ think about the problem and come up with a solution, so that "mount -a" works with a normal fstab. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
