From: Geert Uytterhoeven <geert+rene...@glider.be>

commit 74da24f0ac9b8aabfb8d7feeba6c32ddff3065e0 upstream.

The EROFS filesystem has many configurable options, controlled through
boolean Kconfig symbols.  When enabled, these options may need to enable
additional library functionality elsewhere.  Currently this is done by
selecting the symbol for the additional functionality.  However, if
EROFS_FS itself is modular, and the target symbol is a tristate symbol,
the additional functionality is always forced built-in.

Selecting tristate symbols from a tristate symbol does keep modular
transitivity.  Hence fix this by moving selects of tristate symbols to
the main EROFS_FS symbol.

Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
Reviewed-by: Gao Xiang <hsiang...@linux.alibaba.com>
Link: 
https://lore.kernel.org/r/da1b899e511145dd43fd2d398f64b2e03c6a39e7.1753879351.git.geert+rene...@glider.be
Signed-off-by: Gao Xiang <hsiang...@linux.alibaba.com>
---
to address:
 https://lore.kernel.org/r/ca432b9e-e016-4d2d-b137-79def0aac...@kernel.org

 fs/erofs/Kconfig | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/fs/erofs/Kconfig b/fs/erofs/Kconfig
index 7b26efc271ee..d81f3318417d 100644
--- a/fs/erofs/Kconfig
+++ b/fs/erofs/Kconfig
@@ -3,8 +3,18 @@
 config EROFS_FS
        tristate "EROFS filesystem support"
        depends on BLOCK
+       select CACHEFILES if EROFS_FS_ONDEMAND
        select CRC32
+       select CRYPTO if EROFS_FS_ZIP_ACCEL
+       select CRYPTO_DEFLATE if EROFS_FS_ZIP_ACCEL
        select FS_IOMAP
+       select LZ4_DECOMPRESS if EROFS_FS_ZIP
+       select NETFS_SUPPORT if EROFS_FS_ONDEMAND
+       select XXHASH if EROFS_FS_XATTR
+       select XZ_DEC if EROFS_FS_ZIP_LZMA
+       select XZ_DEC_MICROLZMA if EROFS_FS_ZIP_LZMA
+       select ZLIB_INFLATE if EROFS_FS_ZIP_DEFLATE
+       select ZSTD_DECOMPRESS if EROFS_FS_ZIP_ZSTD
        help
          EROFS (Enhanced Read-Only File System) is a lightweight read-only
          file system with modern designs (e.g. no buffer heads, inline
@@ -38,7 +48,6 @@ config EROFS_FS_DEBUG
 config EROFS_FS_XATTR
        bool "EROFS extended attributes"
        depends on EROFS_FS
-       select XXHASH
        default y
        help
          Extended attributes are name:value pairs associated with inodes by
@@ -94,7 +103,6 @@ config EROFS_FS_BACKED_BY_FILE
 config EROFS_FS_ZIP
        bool "EROFS Data Compression Support"
        depends on EROFS_FS
-       select LZ4_DECOMPRESS
        default y
        help
          Enable transparent compression support for EROFS file systems.
@@ -104,8 +112,6 @@ config EROFS_FS_ZIP
 config EROFS_FS_ZIP_LZMA
        bool "EROFS LZMA compressed data support"
        depends on EROFS_FS_ZIP
-       select XZ_DEC
-       select XZ_DEC_MICROLZMA
        help
          Saying Y here includes support for reading EROFS file systems
          containing LZMA compressed data, specifically called microLZMA. It
@@ -117,7 +123,6 @@ config EROFS_FS_ZIP_LZMA
 config EROFS_FS_ZIP_DEFLATE
        bool "EROFS DEFLATE compressed data support"
        depends on EROFS_FS_ZIP
-       select ZLIB_INFLATE
        help
          Saying Y here includes support for reading EROFS file systems
          containing DEFLATE compressed data.  It gives better compression
@@ -132,7 +137,6 @@ config EROFS_FS_ZIP_DEFLATE
 config EROFS_FS_ZIP_ZSTD
        bool "EROFS Zstandard compressed data support"
        depends on EROFS_FS_ZIP
-       select ZSTD_DECOMPRESS
        help
          Saying Y here includes support for reading EROFS file systems
          containing Zstandard compressed data.  It gives better compression
@@ -147,8 +151,6 @@ config EROFS_FS_ZIP_ZSTD
 config EROFS_FS_ZIP_ACCEL
        bool "EROFS hardware decompression support"
        depends on EROFS_FS_ZIP
-       select CRYPTO
-       select CRYPTO_DEFLATE
        help
          Saying Y here includes hardware accelerator support for reading
          EROFS file systems containing compressed data.  It gives better
@@ -163,9 +165,7 @@ config EROFS_FS_ZIP_ACCEL
 config EROFS_FS_ONDEMAND
        bool "EROFS fscache-based on-demand read support (deprecated)"
        depends on EROFS_FS
-       select NETFS_SUPPORT
        select FSCACHE
-       select CACHEFILES
        select CACHEFILES_ONDEMAND
        help
          This permits EROFS to use fscache-backed data blobs with on-demand
-- 
2.43.5


Reply via email to