]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commite3032d383374fd28ba75248c03642f28b8cddfbd
treee93c46eb8def633533fe80032872f71b36fc03b8
parenta9e47fb296a0df3e62463d3f79d113be2b6d8384
Btrfs: fix regression in scrub path resolving

In commit ab0dc2c8 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