diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-01-12 22:33:16 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-01-12 22:33:16 +0100 |
commit | 7bfb8575b82cd1facde3dc5be2b125f408171646 (patch) | |
tree | 9df1049fe7491df41efe02109b7192334881176c /fs/btrfs/backref.c | |
parent | 6c869d301bda3f672f001e2c9fcb01685000fc83 (diff) | |
parent | 61864d844c296933d40c02683252bbea5193b101 (diff) | |
download | op-kernel-dev-7bfb8575b82cd1facde3dc5be2b125f408171646.zip op-kernel-dev-7bfb8575b82cd1facde3dc5be2b125f408171646.tar.gz |
Merge branch 'topic/line6' into for-next
Diffstat (limited to 'fs/btrfs/backref.c')
-rw-r--r-- | fs/btrfs/backref.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 2d3e32e..8729cf6 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1552,7 +1552,6 @@ int tree_backref_for_extent(unsigned long *ptr, struct extent_buffer *eb, { int ret; int type; - struct btrfs_tree_block_info *info; struct btrfs_extent_inline_ref *eiref; if (*ptr == (unsigned long)-1) @@ -1573,9 +1572,17 @@ int tree_backref_for_extent(unsigned long *ptr, struct extent_buffer *eb, } /* we can treat both ref types equally here */ - info = (struct btrfs_tree_block_info *)(ei + 1); *out_root = btrfs_extent_inline_ref_offset(eb, eiref); - *out_level = btrfs_tree_block_level(eb, info); + + if (key->type == BTRFS_EXTENT_ITEM_KEY) { + struct btrfs_tree_block_info *info; + + info = (struct btrfs_tree_block_info *)(ei + 1); + *out_level = btrfs_tree_block_level(eb, info); + } else { + ASSERT(key->type == BTRFS_METADATA_ITEM_KEY); + *out_level = (u8)key->offset; + } if (ret == 1) *ptr = (unsigned long)-1; |