Skip to content

Commit

Permalink
Revert "Btrfs: rework the overcommit logic to be based on the total s…
Browse files Browse the repository at this point in the history
…ize"

This reverts commit 70afa39.  It is causing
performance issues and wasn't actually correct.  There were problems with the
way we flushed delalloc and that was the real cause of the early enospc.
Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
  • Loading branch information
Josef Bacik authored and Chris Mason committed Sep 21, 2013
1 parent 652f25a commit 14575ae
Showing 1 changed file with 3 additions and 12 deletions.
15 changes: 3 additions & 12 deletions fs/btrfs/extent-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -3925,7 +3925,6 @@ static int can_overcommit(struct btrfs_root *root,
u64 space_size;
u64 avail;
u64 used;
u64 to_add;

used = space_info->bytes_used + space_info->bytes_reserved +
space_info->bytes_pinned + space_info->bytes_readonly;
Expand Down Expand Up @@ -3959,25 +3958,17 @@ static int can_overcommit(struct btrfs_root *root,
BTRFS_BLOCK_GROUP_RAID10))
avail >>= 1;

to_add = space_info->total_bytes;

/*
* If we aren't flushing all things, let us overcommit up to
* 1/2th of the space. If we can flush, don't let us overcommit
* too much, let it overcommit up to 1/8 of the space.
*/
if (flush == BTRFS_RESERVE_FLUSH_ALL)
to_add >>= 3;
avail >>= 3;
else
to_add >>= 1;

/*
* Limit the overcommit to the amount of free space we could possibly
* allocate for chunks.
*/
to_add = min(avail, to_add);
avail >>= 1;

if (used + bytes < space_info->total_bytes + to_add)
if (used + bytes < space_info->total_bytes + avail)
return 1;
return 0;
}
Expand Down

0 comments on commit 14575ae

Please sign in to comment.