Commit c17add7a authored by Qu Wenruo's avatar Qu Wenruo Committed by David Sterba

btrfs: Consider system chunk array size for new SYSTEM chunks

For SYSTEM chunks, despite the regular chunk item size limit, there is
another limit due to system chunk array size.

The extra limit was removed in a refactoring, so add it back.

Fixes: e3ecdb3f ("btrfs: factor out devs_max setting in __btrfs_alloc_chunk")
CC: stable@vger.kernel.org # 5.3+
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent ba0b084a
...@@ -4967,6 +4967,7 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans, ...@@ -4967,6 +4967,7 @@ static int __btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
} else if (type & BTRFS_BLOCK_GROUP_SYSTEM) { } else if (type & BTRFS_BLOCK_GROUP_SYSTEM) {
max_stripe_size = SZ_32M; max_stripe_size = SZ_32M;
max_chunk_size = 2 * max_stripe_size; max_chunk_size = 2 * max_stripe_size;
devs_max = min_t(int, devs_max, BTRFS_MAX_DEVS_SYS_CHUNK);
} else { } else {
btrfs_err(info, "invalid chunk type 0x%llx requested", btrfs_err(info, "invalid chunk type 0x%llx requested",
type); type);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment