diff options
Diffstat (limited to 'fs/btrfs/volumes.c')
| -rw-r--r-- | fs/btrfs/volumes.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 5f39d86d41ec..97dbd7f37674 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
| @@ -6745,9 +6745,15 @@ static int read_one_chunk(struct btrfs_fs_info *fs_info, struct btrfs_key *key, | |||
| 6745 | length = btrfs_chunk_length(leaf, chunk); | 6745 | length = btrfs_chunk_length(leaf, chunk); |
| 6746 | num_stripes = btrfs_chunk_num_stripes(leaf, chunk); | 6746 | num_stripes = btrfs_chunk_num_stripes(leaf, chunk); |
| 6747 | 6747 | ||
| 6748 | ret = btrfs_check_chunk_valid(fs_info, leaf, chunk, logical); | 6748 | /* |
| 6749 | if (ret) | 6749 | * Only need to verify chunk item if we're reading from sys chunk array, |
| 6750 | return ret; | 6750 | * as chunk item in tree block is already verified by tree-checker. |
| 6751 | */ | ||
| 6752 | if (leaf->start == BTRFS_SUPER_INFO_OFFSET) { | ||
| 6753 | ret = btrfs_check_chunk_valid(fs_info, leaf, chunk, logical); | ||
| 6754 | if (ret) | ||
| 6755 | return ret; | ||
| 6756 | } | ||
| 6751 | 6757 | ||
| 6752 | read_lock(&map_tree->map_tree.lock); | 6758 | read_lock(&map_tree->map_tree.lock); |
| 6753 | em = lookup_extent_mapping(&map_tree->map_tree, logical, 1); | 6759 | em = lookup_extent_mapping(&map_tree->map_tree, logical, 1); |
