btrfs-progs: Cleanup open-coded btrfs_chunk_item_size

In btrfs_check_chunk_valid() we calculate chunk item using open code,
use an existing helper btrfs_chunk_item_size() instead.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Qu Wenruo 2017-05-15 16:27:38 +08:00 committed by David Sterba
parent cc5c10b675
commit 8f41197b92
1 changed files with 5 additions and 4 deletions

View File

@ -1685,6 +1685,7 @@ int btrfs_check_chunk_valid(struct btrfs_root *root,
u16 num_stripes;
u16 sub_stripes;
u64 type;
u32 chunk_ondisk_size;
length = btrfs_chunk_length(leaf, chunk);
stripe_len = btrfs_chunk_stripe_len(leaf, chunk);
@ -1724,16 +1725,16 @@ int btrfs_check_chunk_valid(struct btrfs_root *root,
BTRFS_BLOCK_GROUP_PROFILE_MASK) & type);
return -EIO;
}
chunk_ondisk_size = btrfs_chunk_item_size(num_stripes);
/*
* Btrfs_chunk contains at least one stripe, and for sys_chunk
* it can't exceed the system chunk array size
* For normal chunk, it should match its chunk item size.
*/
if (num_stripes < 1 ||
(slot == -1 && sizeof(struct btrfs_stripe) * num_stripes >
BTRFS_SYSTEM_CHUNK_ARRAY_SIZE) ||
(slot >= 0 && sizeof(struct btrfs_stripe) * (num_stripes - 1) >
btrfs_item_size_nr(leaf, slot))) {
(slot == -1 && chunk_ondisk_size > BTRFS_SYSTEM_CHUNK_ARRAY_SIZE) ||
(slot >= 0 && chunk_ondisk_size > btrfs_item_size_nr(leaf, slot))) {
error("invalid num_stripes: %u", num_stripes);
return -EIO;
}