btrfs: move block perfect compression out of experimental features
authorQu Wenruo <wqu@suse.com>
Sat, 15 Mar 2025 08:49:26 +0000 (19:19 +1030)
committerDavid Sterba <dsterba@suse.com>
Thu, 15 May 2025 12:30:38 +0000 (14:30 +0200)
Commit 1d2fbb7f1f9e ("btrfs: allow compression even if the range is not
page aligned") introduced the block perfect compression for block size <
page size cases.

Before that commit, if the fs block size is smaller than page size (aka
subpage cases), compressed write is only enabled if the dirty range is
fully page aligned.

This block perfect compression support was introduced in v6.13, and has
been tested for two kernel releases.
I believe it's time to move it out of experimental features so that we
can get more tests in the real world.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
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/inode.c

index 90f5da3c520ac3de2f32e6d2edd335a44b990883..4603dc6dd533203b488d7cbb7f4172cfe529ac67 100644 (file)
@@ -782,21 +782,6 @@ static inline int inode_need_compress(struct btrfs_inode *inode, u64 start,
                        btrfs_ino(inode));
                return 0;
        }
-       /*
-        * Only enable sector perfect compression for experimental builds.
-        *
-        * This is a big feature change for subpage cases, and can hit
-        * different corner cases, so only limit this feature for
-        * experimental build for now.
-        *
-        * ETA for moving this out of experimental builds is 6.15.
-        */
-       if (fs_info->sectorsize < PAGE_SIZE &&
-           !IS_ENABLED(CONFIG_BTRFS_EXPERIMENTAL)) {
-               if (!PAGE_ALIGNED(start) ||
-                   !PAGE_ALIGNED(end + 1))
-                       return 0;
-       }
 
        /* force compress */
        if (btrfs_test_opt(fs_info, FORCE_COMPRESS))