Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c6044801 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: avoid allocation clusters that are too spread out



In SSD mode for data, and all the time for metadata the allocator
will try to find a cluster of nearby blocks for allocations.  This
commit adds extra checks to make sure that each free block in the
cluster is close to the last one.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 3b30c22f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -645,7 +645,8 @@ int btrfs_find_space_cluster(struct btrfs_trans_handle *trans,
		 * we haven't filled the empty size and the window is
		 * very large.  reset and try again
		 */
		if (next->offset - window_start > (bytes + empty_size) * 2) {
		if (next->offset - (last->offset + last->bytes) > 128 * 1024 ||
		    next->offset - window_start > (bytes + empty_size) * 2) {
			entry = next;
			window_start = entry->offset;
			window_free = entry->bytes;