]> git.karo-electronics.de Git - karo-tx-linux.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 22 Apr 2012 22:38:53 +0000 (15:38 -0700)
commit1048aff3edf4969a6b215503e22ee667de386a83
tree690d33410d4b047ecd84133266c97bd5fca696c7
parentad07d7b92e72331be7fa555491d42686e8c4e925
Btrfs: fix regression in scrub path resolving

commit 7a3ae2f8c8c8432e65467b7fc84d5deab04061a0 upstream.

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>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/btrfs/backref.c
fs/btrfs/backref.h
fs/btrfs/ioctl.c
fs/btrfs/scrub.c