Btrfs: fix tree log remove space corner case
authorJosef Bacik <jbacik@fusionio.com>
Wed, 27 Jun 2012 19:10:56 +0000 (15:10 -0400)
committerChris Mason <chris.mason@fusionio.com>
Mon, 2 Jul 2012 19:39:18 +0000 (15:39 -0400)
commitbdb7d303b33c1648514c9f9461d7513a4c05ce48
tree78e24aa16c3d3cec9133616fa9076f7420e03612
parent6bf02314d9a5c29f6ec30285b9ad5361c2d4c85a
Btrfs: fix tree log remove space corner case

The tree log stuff can have allocated space that we end up having split
across a bitmap and a real extent.  The free space code does not deal with
this, it assumes that if it finds an extent or bitmap entry that the entire
range must fall within the entry it finds.  This isn't necessarily the case,
so rework the remove function so it can handle this case properly.  This
fixed two panics the user hit, first in the case where the space was
initially in a bitmap and then in an extent entry, and then the reverse
case.  Thanks,

Reported-and-tested-by: Shaun Reich <sreich@kde.org>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/free-space-cache.c