aboutsummaryrefslogtreecommitdiffstats
path: root/disk-io.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fb.com>2015-02-09 10:02:25 -0500
committerJosef Bacik <jbacik@fb.com>2015-02-09 14:53:15 -0500
commit08a45972234b3edb1348641e188f233bab6e50c1 (patch)
tree1fe22dd486f7f558f720e86a6bf0ea2644c208b7 /disk-io.c
parentbce7dbba2859a47554c122eae32ead87e6a6510a (diff)
downloadbtrfs-progs-08a45972234b3edb1348641e188f233bab6e50c1.tar.gz
btrfs-progs-08a45972234b3edb1348641e188f233bab6e50c1.tar.xz
btrfs-progs-08a45972234b3edb1348641e188f233bab6e50c1.zip
Btrfs-progs: remove global transaction from fsck
We hold a transaction open for the entirety of fixing extent refs. This works out ok most of the time but we can be tight on space and run out of space when fixing things. To get around this just push down the transaction starting dance into the functions that actually fix things. This keeps us from ending up with ENOSPC because we pinned everything and allows the code to be a bit simpler. Thanks, Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'disk-io.c')
-rw-r--r--disk-io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/disk-io.c b/disk-io.c
index 0d33258..ca39f17 100644
--- a/disk-io.c
+++ b/disk-io.c
@@ -763,6 +763,8 @@ struct btrfs_fs_info *btrfs_new_fs_info(int writable, u64 sb_bytenr)
extent_io_tree_init(&fs_info->pinned_extents);
extent_io_tree_init(&fs_info->pending_del);
extent_io_tree_init(&fs_info->extent_ins);
+ fs_info->excluded_extents = NULL;
+
fs_info->fs_root_tree = RB_ROOT;
cache_tree_init(&fs_info->mapping_tree.cache_tree);