Btrfs: fix regression in scrub path resolving
authorJan Schmidt <list.btrfs@jan-o-sch.net>
Fri, 23 Mar 2012 16:32:28 +0000 (17:32 +0100)
committerJan Schmidt <list.btrfs@jan-o-sch.net>
Tue, 27 Mar 2012 12:51:21 +0000 (14:51 +0200)
commit7a3ae2f8c8c8432e65467b7fc84d5deab04061a0
treee93c46eb8def633533fe80032872f71b36fc03b8
parent103e976616fe9c2a3e40764c979fa1a592274da2
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>
fs/btrfs/backref.c
fs/btrfs/backref.h
fs/btrfs/ioctl.c
fs/btrfs/scrub.c