mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-01 12:04:08 +00:00
btrfs: fix oops on failure path
If lookup_extent_backref fails, path->nodes[0] reasonably could be null along with other callers of btrfs_print_leaf, so ensure we have a valid extent buffer before dereferencing. Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com>
This commit is contained in:
parent
60d2adbb1e
commit
068132bad1
1 changed files with 6 additions and 2 deletions
|
@ -158,8 +158,7 @@ static void print_extent_ref_v0(struct extent_buffer *eb, int slot)
|
||||||
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
u32 type;
|
u32 type, nr;
|
||||||
u32 nr = btrfs_header_nritems(l);
|
|
||||||
struct btrfs_item *item;
|
struct btrfs_item *item;
|
||||||
struct btrfs_root_item *ri;
|
struct btrfs_root_item *ri;
|
||||||
struct btrfs_dir_item *di;
|
struct btrfs_dir_item *di;
|
||||||
|
@ -172,6 +171,11 @@ void btrfs_print_leaf(struct btrfs_root *root, struct extent_buffer *l)
|
||||||
struct btrfs_key key;
|
struct btrfs_key key;
|
||||||
struct btrfs_key found_key;
|
struct btrfs_key found_key;
|
||||||
|
|
||||||
|
if (!l)
|
||||||
|
return;
|
||||||
|
|
||||||
|
nr = btrfs_header_nritems(l);
|
||||||
|
|
||||||
printk(KERN_INFO "leaf %llu total ptrs %d free space %d\n",
|
printk(KERN_INFO "leaf %llu total ptrs %d free space %d\n",
|
||||||
(unsigned long long)btrfs_header_bytenr(l), nr,
|
(unsigned long long)btrfs_header_bytenr(l), nr,
|
||||||
btrfs_leaf_free_space(root, l));
|
btrfs_leaf_free_space(root, l));
|
||||||
|
|
Loading…
Add table
Reference in a new issue