Btrfs: Find and remove dead roots the first time a root is loaded.
authorChris Mason <chris.mason@oracle.com>
Tue, 11 Sep 2007 15:15:39 +0000 (11:15 -0400)
committerDavid Woodhouse <dwmw2@hera.kernel.org>
Tue, 11 Sep 2007 15:15:39 +0000 (11:15 -0400)
commit5ce14bbcdd1b5d9233d26a1e89faf3a26c820c58
tree6e2a2964e9b01c03dd1b4d58c976d76664747b64
parent0e2752a72cb37075b24899f01e9bc6a589de3b6c
Btrfs: Find and remove dead roots the first time a root is loaded.

Dead roots are trees left over after a crash, and they were either in the
process of being removed or were waiting to be removed when the box crashed.
Before, a search of the entire tree of root pointers was done on mount
looking for dead roots.  Now, the search is done the first time we load
a root.

This makes mount faster when there are a large number of snapshots, and it
enables the block accounting code to properly update the block counts on
the latest root as old versions of the root are reaped after a crash.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/root-tree.c
fs/btrfs/transaction.c
fs/btrfs/transaction.h