|
@@ -5173,12 +5173,13 @@ unsigned long btrfs_full_stripe_len(struct btrfs_fs_info *fs_info,
|
|
|
unsigned long len = fs_info->sectorsize;
|
|
|
|
|
|
em = get_chunk_map(fs_info, logical, len);
|
|
|
- WARN_ON(IS_ERR(em));
|
|
|
|
|
|
- map = em->map_lookup;
|
|
|
- if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK)
|
|
|
- len = map->stripe_len * nr_data_stripes(map);
|
|
|
- free_extent_map(em);
|
|
|
+ if (!WARN_ON(IS_ERR(em))) {
|
|
|
+ map = em->map_lookup;
|
|
|
+ if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK)
|
|
|
+ len = map->stripe_len * nr_data_stripes(map);
|
|
|
+ free_extent_map(em);
|
|
|
+ }
|
|
|
return len;
|
|
|
}
|
|
|
|
|
@@ -5190,12 +5191,13 @@ int btrfs_is_parity_mirror(struct btrfs_fs_info *fs_info,
|
|
|
int ret = 0;
|
|
|
|
|
|
em = get_chunk_map(fs_info, logical, len);
|
|
|
- WARN_ON(IS_ERR(em));
|
|
|
|
|
|
- map = em->map_lookup;
|
|
|
- if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK)
|
|
|
- ret = 1;
|
|
|
- free_extent_map(em);
|
|
|
+ if(!WARN_ON(IS_ERR(em))) {
|
|
|
+ map = em->map_lookup;
|
|
|
+ if (map->type & BTRFS_BLOCK_GROUP_RAID56_MASK)
|
|
|
+ ret = 1;
|
|
|
+ free_extent_map(em);
|
|
|
+ }
|
|
|
return ret;
|
|
|
}
|
|
|
|