Skip to content

Commit

Permalink
Btrfs: fix how we set max_size for free space clusters
Browse files Browse the repository at this point in the history
This patch fixes a problem where max_size can be set to 0 even though we
filled the cluster properly.  We set max_size to 0 if we restart the cluster
window, but if the new start entry is big enough to be our new cluster then we
could return with a max_size set to 0, which will mean the next time we try to
allocate from this cluster it will fail.  So set max_extent to the entry's
size.  Tested this on my box and now we actually allocate from the cluster
after we fill it.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
  • Loading branch information
Josef Bacik authored and Chris Mason committed Nov 11, 2009
1 parent 249ac1e commit 01dea1e
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion fs/btrfs/free-space-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1296,7 +1296,7 @@ int btrfs_find_space_cluster(struct btrfs_trans_handle *trans,
window_start = entry->offset;
window_free = entry->bytes;
last = entry;
max_extent = 0;
max_extent = entry->bytes;
} else {
last = next;
window_free += next->bytes;
Expand Down

0 comments on commit 01dea1e

Please sign in to comment.