]> www.infradead.org Git - nvme.git/commitdiff
erofs: enable 48-bit layout support
authorGao Xiang <hsiangkao@linux.alibaba.com>
Mon, 10 Mar 2025 09:56:25 +0000 (17:56 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Mon, 17 Mar 2025 06:02:16 +0000 (14:02 +0800)
Both 48-bit block addressing and encoded extents are implemented,
let's enable them formally.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Acked-by: Chao Yu <chao@kernel.org>
Link: https://lore.kernel.org/r/20250310095625.2623817-1-hsiangkao@linux.alibaba.com
fs/erofs/Kconfig
fs/erofs/erofs_fs.h
fs/erofs/super.c

index 6ea60661fa55bcf2ead09bb71b33c92c21270269..331e49cd1b8d9d302714b58cc83d7ccbbe38e9be 100644 (file)
@@ -13,12 +13,12 @@ config EROFS_FS
          smartphones with Android OS, LiveCDs and high-density hosts with
          numerous containers;
 
-         It also provides fixed-sized output compression support in order to
-         improve storage density as well as keep relatively higher compression
-         ratios and implements in-place decompression to reuse the file page
-         for compressed data temporarily with proper strategies, which is
-         quite useful to ensure guaranteed end-to-end runtime decompression
-         performance under extremely memory pressure without extra cost.
+         It also provides transparent compression and deduplication support to
+         improve storage density and maintain relatively high compression
+         ratios, and it implements in-place decompression to temporarily reuse
+         page cache for compressed data using proper strategies, which is
+         quite useful for ensuring guaranteed end-to-end runtime decompression
+         performance under extreme memory pressure without extra cost.
 
          See the documentation at <file:Documentation/filesystems/erofs.rst>
          and the web pages at <https://erofs.docs.kernel.org> for more details.
@@ -97,7 +97,7 @@ config EROFS_FS_ZIP
        select LZ4_DECOMPRESS
        default y
        help
-         Enable fixed-sized output compression for EROFS.
+         Enable transparent compression support for EROFS file systems.
 
          If you don't want to enable compression feature, say N.
 
index 6d461be790bdfb091a7e3ad703a93d87357384f2..9581e9bf8192dc753a3aeb52fcca96ec4d4bdf80 100644 (file)
@@ -32,7 +32,7 @@
 #define EROFS_FEATURE_INCOMPAT_XATTR_PREFIXES  0x00000040
 #define EROFS_FEATURE_INCOMPAT_48BIT           0x00000080
 #define EROFS_ALL_FEATURE_INCOMPAT             \
-       ((EROFS_FEATURE_INCOMPAT_XATTR_PREFIXES << 1) - 1)
+       ((EROFS_FEATURE_INCOMPAT_48BIT << 1) - 1)
 
 #define EROFS_SB_EXTSLOT_SIZE  16
 
index ea0716457580097dabe312384b360ff3a2d69438..cadec6b1b5545140eae8f0a0f915e60b9122ca33 100644 (file)
@@ -330,6 +330,8 @@ static int erofs_read_superblock(struct super_block *sb)
        /* handle multiple devices */
        ret = erofs_scan_devices(sb, dsb);
 
+       if (erofs_sb_has_48bit(sbi))
+               erofs_info(sb, "EXPERIMENTAL 48-bit layout support in use. Use at your own risk!");
        if (erofs_is_fscache_mode(sb))
                erofs_info(sb, "[deprecated] fscache-based on-demand read feature in use. Use at your own risk!");
 out: