diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2014-06-09 04:54:07 +0200 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-06-10 02:21:17 +0200 |
commit | 6eda71d0c030af0fc2f68aaa676e6d445600855b (patch) | |
tree | f649b36ac2cf1762e3ac5a8d4bd6b1cb26d99963 /fs/btrfs/scrub.c | |
parent | Btrfs: make fsync work after cloning into a file (diff) | |
download | linux-6eda71d0c030af0fc2f68aaa676e6d445600855b.tar.xz linux-6eda71d0c030af0fc2f68aaa676e6d445600855b.zip |
Btrfs: fix scrub_print_warning to handle skinny metadata extents
The skinny extents are intepreted incorrectly in scrub_print_warning(),
and end up hitting the BUG() in btrfs_extent_inline_ref_size.
Reported-by: Konstantinos Skarlatos <k.skarlatos@gmail.com>
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/scrub.c')
-rw-r--r-- | fs/btrfs/scrub.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index bd850b599a99..ac80188eec88 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -588,8 +588,9 @@ static void scrub_print_warning(const char *errstr, struct scrub_block *sblock) if (flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) { do { - ret = tree_backref_for_extent(&ptr, eb, ei, item_size, - &ref_root, &ref_level); + ret = tree_backref_for_extent(&ptr, eb, &found_key, ei, + item_size, &ref_root, + &ref_level); printk_in_rcu(KERN_WARNING "BTRFS: %s at logical %llu on dev %s, " "sector %llu: metadata %s (level %d) in tree " |