]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: fix panic when recovering tree log
authorJosef Bacik <jbacik@fusionio.com>
Tue, 18 Dec 2012 16:39:19 +0000 (11:39 -0500)
committerJosef Bacik <jbacik@fusionio.com>
Thu, 24 Jan 2013 17:49:49 +0000 (12:49 -0500)
commit874a7dfb0ff4a7f29b5ed43e002ad8311eb5144d
tree1748791c73aae22587be21f2b3ee127d858c3432
parent707c5c1b9f69e5f9bbdf5ebe1750fe49fe97dc30
Btrfs: fix panic when recovering tree log

A user reported a BUG_ON(ret) that occured during tree log replay.  Ret was
-EAGAIN, so what I think happened is that we removed an extent that covered
a bitmap entry and an extent entry.  We remove the part from the bitmap and
return -EAGAIN and then search for the next piece we want to remove, which
happens to be an entire extent entry, so we just free the sucker and return.
The problem is ret is still set to -EAGAIN so we trip the BUG_ON().  The
user used btrfs-zero-log so I'm not 100% sure this is what happened so I've
added a WARN_ON() to catch the other possibility.  Thanks,

Reported-by: Jan Steffens <jan.steffens@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/free-space-cache.c