On 2015-12-02 11:54, Eric Sandeen wrote: > On 12/2/15 3:23 AM, Qu Wenruo wrote: >> >> >> Qu Wenruo wrote on 2015/12/02 17:06 +0800: >>> >>> >>> Russell Coker wrote on 2015/12/02 17:25 +1100: >>>> On Wed, 2 Dec 2015 06:05:09 AM Eric Sandeen wrote: >>>>> yes, xfs does; we have "-o norecovery" if you don't want that, or need >>>>> to mount a filesystem with a dirty log on a readonly device. >>>> >>>> That option also works with Ext3/4 so it seems to be a standard way of >>>> dealing >>>> with this. I think that BTRFS should do what Ext3/4 and XFS do in this >>>> regard. >>>> >>> BTW, does -o norecovery implies -o ro? >>> >>> If not, how does it keep the filesystem consistent? >>> >>> I'd like to follow that ext2/xfs behavior, but I'm not familiar with >>> those filesystems. >>> >>> Thanks, >>> Qu >>> >> >> OK, norecovery implies ro. > > For XFS, it doesn't imply it, it requires it; i.e. both must be stated explicitly: > > /* > * no recovery flag requires a read-only mount > */ > if ((mp->m_flags & XFS_MOUNT_NORECOVERY) && > !(mp->m_flags & XFS_MOUNT_RDONLY)) { > xfs_warn(mp, "no-recovery mounts must be read-only."); > return -EINVAL; > } > > ext4 is the same, I believe: > > } else if (test_opt(sb, NOLOAD) && !(sb->s_flags & MS_RDONLY) && > ext4_has_feature_journal_needs_recovery(sb)) { > ext4_msg(sb, KERN_ERR, "required journal recovery " > "suppressed and not mounted read-only"); > goto failed_mount_wq; > > so if you'd like btrfs to be consistent with these, I would not make > norecovery imply ro; rather, make I would make it require an explicit ro, i.e. > > mount -o ro,norecovery Agreed, with something like that, it should as blatantly obvious as possible that you can't write to the FS. On a side note, do either XFS or ext4 support removing the norecovery option from the mount flags through mount -o remount? Even if they don't, that might be a nice feature to have in BTRFS if we can safely support it.