]> www.infradead.org Git - users/hch/misc.git/commitdiff
btrfs: support all block sizes which is no larger than page size
authorQu Wenruo <wqu@suse.com>
Sat, 9 Aug 2025 04:49:16 +0000 (14:19 +0930)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Sep 2025 06:49:16 +0000 (08:49 +0200)
Currently if block size < page size, btrfs only supports one single
config, 4K.

This is mostly to reduce the test configurations, as 4K is going to be
the default block size for all architectures.

However all other major filesystems have no artificial limits on the
support block size, and some are already supporting block size > page
sizes.

Since the btrfs subpage block support has been there for a long time,
it's time for us to enable all block size <= page size support.

So here enable all block sizes support as long as it's no larger than
page size for experimental builds.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/fs.c

index 335209fe37347fa392807ea4a1257ca714a6f1d7..014fb8b12f96b90e4dbb63745a8d9b3b6256880f 100644 (file)
@@ -78,6 +78,10 @@ bool __attribute_const__ btrfs_supported_blocksize(u32 blocksize)
 
        if (blocksize == PAGE_SIZE || blocksize == SZ_4K || blocksize == BTRFS_MIN_BLOCKSIZE)
                return true;
+#ifdef CONFIG_BTRFS_EXPERIMENTAL
+       if (blocksize <= PAGE_SIZE)
+               return true;
+#endif
        return false;
 }