Btrfs: add NULL check for do_walk_down()
btrfs_find_create_tree_block() may return NULL, so we must check the returned value, or we will access a NULL pointer. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
parent
2f3014fc2a
commit
90d2c51dbb
@ -5205,6 +5205,8 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
||||
next = btrfs_find_tree_block(root, bytenr, blocksize);
|
||||
if (!next) {
|
||||
next = btrfs_find_create_tree_block(root, bytenr, blocksize);
|
||||
if (!next)
|
||||
return -ENOMEM;
|
||||
reada = 1;
|
||||
}
|
||||
btrfs_tree_lock(next);
|
||||
@ -5417,7 +5419,8 @@ static noinline int walk_down_tree(struct btrfs_trans_handle *trans,
|
||||
if (ret > 0) {
|
||||
path->slots[level]++;
|
||||
continue;
|
||||
}
|
||||
} else if (ret < 0)
|
||||
return ret;
|
||||
level = wc->level;
|
||||
}
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user