mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 08:19:28 +00:00
Btrfs: check return value of lookup_extent_mapping() correctly
This patch corrects error checking of lookup_extent_mapping(). Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
This commit is contained in:
parent
600a45e1d5
commit
285190d99f
3 changed files with 4 additions and 2 deletions
|
@ -588,6 +588,8 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
|
|||
page_offset(bio->bi_io_vec->bv_page),
|
||||
PAGE_CACHE_SIZE);
|
||||
read_unlock(&em_tree->lock);
|
||||
if (!em)
|
||||
return -EIO;
|
||||
|
||||
compressed_len = em->block_len;
|
||||
cb = kmalloc(compressed_bio_size(root, compressed_len), GFP_NOFS);
|
||||
|
|
|
@ -3308,7 +3308,7 @@ int try_release_extent_mapping(struct extent_map_tree *map,
|
|||
len = end - start + 1;
|
||||
write_lock(&map->lock);
|
||||
em = lookup_extent_mapping(map, start, len);
|
||||
if (IS_ERR_OR_NULL(em)) {
|
||||
if (!em) {
|
||||
write_unlock(&map->lock);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1954,7 +1954,7 @@ static int btrfs_relocate_chunk(struct btrfs_root *root,
|
|||
em = lookup_extent_mapping(em_tree, chunk_offset, 1);
|
||||
read_unlock(&em_tree->lock);
|
||||
|
||||
BUG_ON(em->start > chunk_offset ||
|
||||
BUG_ON(!em || em->start > chunk_offset ||
|
||||
em->start + em->len < chunk_offset);
|
||||
map = (struct map_lookup *)em->bdev;
|
||||
|
||||
|
|
Loading…
Reference in a new issue