btrfs: don't use size classes for zoned file systems
authorBoris Burkov <boris@bur.io>
Fri, 16 Dec 2022 00:06:35 +0000 (16:06 -0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 13 Feb 2023 16:50:34 +0000 (17:50 +0100)
commitcb0922f264643f03b04352f7a04abb913c609369
tree2fbe7804f1e87b4e080b5c5a83575cd8011642e4
parentc7eec3d9aa955cbd00470f874f34bdba946bd101
btrfs: don't use size classes for zoned file systems

When a file system has ZNS devices which are constrained by a maximum
number of active block groups, then not being able to use all the block
groups for every allocation is not ideal, and could cause us to loop a
ton with mixed size allocations.

In general, since zoned doesn't write into gaps behind where block
groups are writing, it is not susceptible to the same sort of
fragmentation that size classes are designed to solve, so we can skip
size classes for zoned file systems in general, even though there would
probably be no harm for SMR devices.

Signed-off-by: Boris Burkov <boris@bur.io>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c
fs/btrfs/block-group.h
fs/btrfs/extent-tree.c