diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c index b8f39a679064a3a00ea2bf6eae6c984bdcdabe1b..786849fcc319ade0c53d82338acffc626566ff98 100644 --- a/fs/btrfs/block-group.c +++ b/fs/btrfs/block-group.c @@ -2008,6 +2008,7 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info) btrfs_release_path(path); } + rcu_read_lock(); list_for_each_entry_rcu(space_info, &info->space_info, list) { if (!(btrfs_get_alloc_profile(info, space_info->flags) & (BTRFS_BLOCK_GROUP_RAID10 | @@ -2028,6 +2029,7 @@ int btrfs_read_block_groups(struct btrfs_fs_info *info) list) inc_block_group_ro(cache, 1); } + rcu_read_unlock(); btrfs_init_global_block_rsv(info); ret = check_chunk_block_group_mappings(info);