]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commit
Btrfs: various abort cleanups
authorJosef Bacik <jbacik@fusionio.com>
Thu, 25 Apr 2013 17:44:38 +0000 (13:44 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Mon, 6 May 2013 19:55:11 +0000 (15:55 -0400)
commit54067ae95e1547123fe6ffcf80842e234effd53b
tree4a3b4feab80ba27cac0a176e60b81f73d17a655b
parentfd8b2b611580929ab1aa01e3942dce20f9e95732
Btrfs: various abort cleanups

I have a broken file system that when it aborts leaves all sorts of accounting
things wrong and gives you lots of WARN_ON()'s other than the abort.  This is
because we're not cleaning up various parts of the file system when we abort.
The first chunks are specific to mount failures, we weren't cleaning up the
block group cached inodes and we weren't cleaning up any transactions that had
been aborted, which leaves a bunch of things laying around.

The second half of this are related to the cleanup parts.  First we don't need
to release space for the dirty pages from the trans_block_rsv, that's all
handled by the trans handles so this is just plain wrong.  The other thing is we
need to pin down extents that were set ->must_insert_reserved for delayed refs.
This isn't so much for the pinning but more for the cleaning up the
cache->reserved counter since we are no longer going to use those reserved
bytes.  With this patch I no longer see a bunch of WARN_ON()'s when I try to
mount this broken file system, just the initial one from the abort.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/disk-io.c