Btrfs: fix backref walking race with tree deletions
authorJan Schmidt <list.btrfs@jan-o-sch.net>
Thu, 21 Feb 2013 15:35:27 +0000 (15:35 +0000)
committerJosef Bacik <jbacik@fusionio.com>
Tue, 26 Feb 2013 16:00:50 +0000 (11:00 -0500)
commitca60ebfa303ca6d9f3cad5028c10f0a17d571a4c
treec8445152a89596fb1d6895a198327268067b11ae
parentf2bdf9a8f79052e9577936cbe5696c0e232aa0e3
Btrfs: fix backref walking race with tree deletions

When a subvolume is removed, we remove the root item from the root tree,
while the tree blocks and backrefs remain for a while. When backref walking
comes across one of those orphan tree blocks, it can find a backref for a
no longer existing root. This is all good, we only must tolerate
__resolve_indirect_ref returning an error and continue with the good refs
found.

Reported-by: Alex Lyakas <alex.btrfs@zadarastorage.com>
Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/backref.c