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

Reply via email to