• Geert Uytterhoeven's avatar
    f2fs: compress: Allow modular (de)compression algorithms · 72f85881
    Geert Uytterhoeven authored
    If F2FS_FS is modular, enabling the compressions options
    F2FS_FS_{LZ4,LZ4HZ,LZO,LZORLE,ZSTD} will make the (de)compression
    algorithms {LZ4,LZ4HC,LZO,ZSTD}_{,DE}COMPRESS builtin instead of
    modular, as the former depend on an intermediate boolean
    F2FS_FS_COMPRESSION, which in-turn depends on tristate F2FS_FS.
    
    Indeed, if a boolean symbol A depends directly on a tristate symbol B
    and selects another tristate symbol C:
    
        tristate B
    
        tristate C
    
        bool A
          depends on B
          select C
    
    and B is modular, then C will also be modular.
    
    However, if there is an intermediate boolean D in the dependency chain
    between A and B:
    
        tristate B
    
        tristate C
    
        bool D
          depends on B
    
        bool A
          depends on D
          select C
    
    then the modular state won't propagate from B to C, and C will be
    builtin instead of modular.
    
    As modular dependency propagation through intermediate symbols is
    obscure, fix this in a robust way by moving the selection of tristate
    (de)compression algorithms from the boolean compression options to the
    tristate main F2FS_FS option.
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: default avatarChao Yu <yuchao0@huawei.com>
    Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    72f85881
Kconfig 4.1 KB