From: Zygo Blaxell Date: Sat, 21 Dec 2024 15:48:03 +0000 (-0500) Subject: btrfs: use BTRFS_MAX_EXTENT_SIZE in prealloc X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Ftopics%2Fprealloc-size;p=linux btrfs: use BTRFS_MAX_EXTENT_SIZE in prealloc The prealloc size limit of 256M was set in commit 24542bf7ea5e ("btrfs: limit fallocate extent reservation to 256MB") while the 128M extent size limit used everywhere else was set in commit b888db2bd7b6 ("Btrfs: Add delayed allocation to the extent based page tree code"), i.e. since the beginning of btrfs. Excessively large extents cause problems for relocations already, and there is no need for prealloc to create any more. Bring the prealloc size down to the same size used by normal write allocations. Zoned devices can't use prealloc, so we don't need to do anything special for them like we do for normal writes. Signed-off-by: Zygo Blaxell --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index b446c3014b240..2534f4a4ee653 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -9033,7 +9033,7 @@ static int __btrfs_prealloc_file_range(struct inode *inode, int mode, if (trans) own_trans = false; while (num_bytes > 0) { - cur_bytes = min_t(u64, num_bytes, SZ_256M); + cur_bytes = min_t(u64, num_bytes, BTRFS_MAX_EXTENT_SIZE); cur_bytes = max(cur_bytes, min_size); /* * If we are severely fragmented we could end up with really