Commit ead622674df5 ("btrfs: Do not restrict writes to btrfs devices") removes the BLK_OPEN_RESTRICT_WRITES flag when opening the devices during mount. However I can not figure out why we need to exclude that flag. Even before that commit, btrfs_open_devices() is protected by uuid_mutex, thus there will be only one process winning the race and open all devices properly. The ones losing the race will still grab the same fs_devices, but only increasing the open counter, not really opening the devices read-write again. So there seems to be no special requirement from btrfs to explicitly exclude BLK_OPEN_RESTRICT_WRITES flag. Just use the common sb_open_mode() to do the device opening. Signed-off-by: Qu Wenruo <wqu@xxxxxxxx> --- fs/btrfs/super.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index dd6e8a50ac39..0587e4973564 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -261,12 +261,6 @@ static const struct fs_parameter_spec btrfs_fs_parameters[] = { {} }; -/* No support for restricting writes to btrfs devices yet... */ -static inline blk_mode_t btrfs_open_mode(struct fs_context *fc) -{ - return sb_open_mode(fc->sb_flags) & ~BLK_OPEN_RESTRICT_WRITES; -} - static bool btrfs_match_compress_type(const char *string, const char *type, bool may_have_level) { const int len = strlen(type); @@ -1843,7 +1837,7 @@ static int btrfs_get_tree_super(struct fs_context *fc) struct btrfs_fs_devices *fs_devices = NULL; struct btrfs_device *device; struct super_block *sb; - blk_mode_t mode = btrfs_open_mode(fc); + blk_mode_t mode = sb_open_mode(fc->sb_flags); int ret; btrfs_ctx_to_info(fs_info, ctx); -- 2.50.0