Btrfs: fix regression in scrub path resolving
In commit 4692cf58
we introduced new backref walking code for btrfs. This
assumes we're searching live roots, which requires a transaction context.
While scrubbing, however, we must not join a transaction because this could
deadlock with the commit path. Additionally, what scrub really wants to do
is resolving a logical address in the commit root it's currently checking.
This patch adds support for logical to path resolving on commit roots and
makes scrub use that.
Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
This commit is contained in:
@@ -352,8 +352,8 @@ static void scrub_print_warning(const char *errstr, struct scrub_bio *sbio,
|
||||
} while (ret != 1);
|
||||
} else {
|
||||
swarn.path = path;
|
||||
iterate_extent_inodes(fs_info, path, found_key.objectid,
|
||||
extent_item_pos,
|
||||
iterate_extent_inodes(fs_info, found_key.objectid,
|
||||
extent_item_pos, 1,
|
||||
scrub_print_warning_inode, &swarn);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user