if (error)
goto error_free_subvol_name;
+ if (!(flags & MS_RDONLY) && fs_devices->rw_devices == 0) {
+ error = -EACCES;
+ goto error_close_devices;
+ }
+
bdev = fs_devices->latest_bdev;
s = sget(fs_type, btrfs_test_super, set_anon_super, fs_devices);
if (IS_ERR(s))
goto error_close_devices;
}
+ btrfs_close_devices(fs_devices);
} else {
char b[BDEVNAME_SIZE];
ret = btrfs_commit_super(root);
WARN_ON(ret);
} else {
+ if (root->fs_info->fs_devices->rw_devices == 0)
+ return -EACCES;
+
if (btrfs_super_log_root(&root->fs_info->super_copy) != 0)
return -EINVAL;