diff options
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r-- | fs/btrfs/extent-tree.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 26b8d3406491..f7d76d34fc37 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -1018,7 +1018,7 @@ static int find_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root | |||
1018 | if (num_blocks == 0) { | 1018 | if (num_blocks == 0) { |
1019 | fill_prealloc = 1; | 1019 | fill_prealloc = 1; |
1020 | num_blocks = 1; | 1020 | num_blocks = 1; |
1021 | total_needed = (min(level + 1, BTRFS_MAX_LEVEL) + 2) * 3; | 1021 | total_needed = (min(level + 1, BTRFS_MAX_LEVEL)) * 6; |
1022 | } | 1022 | } |
1023 | if (fill_prealloc) { | 1023 | if (fill_prealloc) { |
1024 | u64 first; | 1024 | u64 first; |
@@ -1300,6 +1300,8 @@ int btrfs_alloc_extent(struct btrfs_trans_handle *trans, | |||
1300 | ins->objectid; | 1300 | ins->objectid; |
1301 | ret = update_block_group(trans, root, | 1301 | ret = update_block_group(trans, root, |
1302 | ins->objectid, ins->offset, 1, 0, 0); | 1302 | ins->objectid, ins->offset, 1, 0, 0); |
1303 | WARN_ON(info->extent_tree_insert_nr > | ||
1304 | ARRAY_SIZE(info->extent_tree_insert)); | ||
1303 | BUG_ON(ret); | 1305 | BUG_ON(ret); |
1304 | return 0; | 1306 | return 0; |
1305 | } | 1307 | } |
@@ -1628,7 +1630,7 @@ int btrfs_drop_snapshot(struct btrfs_trans_handle *trans, struct btrfs_root | |||
1628 | if (wret < 0) | 1630 | if (wret < 0) |
1629 | ret = wret; | 1631 | ret = wret; |
1630 | num_walks++; | 1632 | num_walks++; |
1631 | if (num_walks > 10) { | 1633 | if (num_walks > 2) { |
1632 | ret = -EAGAIN; | 1634 | ret = -EAGAIN; |
1633 | get_bh(root->node); | 1635 | get_bh(root->node); |
1634 | break; | 1636 | break; |