diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-09-11 11:15:39 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2007-09-11 11:15:39 -0400 |
commit | 5ce14bbcdd1b5d9233d26a1e89faf3a26c820c58 (patch) | |
tree | 6e2a2964e9b01c03dd1b4d58c976d76664747b64 /fs/btrfs/ctree.h | |
parent | 0e2752a72cb37075b24899f01e9bc6a589de3b6c (diff) |
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>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 03e1c4ad341b..6d6e94b63803 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -1148,7 +1148,8 @@ int btrfs_update_root(struct btrfs_trans_handle *trans, struct btrfs_root | |||
1148 | *item); | 1148 | *item); |
1149 | int btrfs_find_last_root(struct btrfs_root *root, u64 objectid, struct | 1149 | int btrfs_find_last_root(struct btrfs_root *root, u64 objectid, struct |
1150 | btrfs_root_item *item, struct btrfs_key *key); | 1150 | btrfs_root_item *item, struct btrfs_key *key); |
1151 | int btrfs_find_dead_roots(struct btrfs_root *root); | 1151 | int btrfs_find_dead_roots(struct btrfs_root *root, u64 objectid, |
1152 | struct btrfs_root *latest_root); | ||
1152 | /* dir-item.c */ | 1153 | /* dir-item.c */ |
1153 | int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root | 1154 | int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root |
1154 | *root, const char *name, int name_len, u64 dir, | 1155 | *root, const char *name, int name_len, u64 dir, |