After simplifying the implementation of z_erofs_parse_cfgs, the names of unsupported algorithms can now be directly output. Moreover, some unnecessary additional judgments can be removed.
Signed-off-by: Yuwen Chen <[email protected]> --- v1 -> v2: - fix the code style issues prompted by the checkpatch.pl script fs/erofs/decompressor.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index be1e19b620523..f64b08fe81791 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -385,21 +385,22 @@ const struct z_erofs_decompressor erofs_decompressors[] = { .decompress = z_erofs_lz4_decompress, .name = "lz4" }, -#ifdef CONFIG_EROFS_FS_ZIP_LZMA [Z_EROFS_COMPRESSION_LZMA] = { +#ifdef CONFIG_EROFS_FS_ZIP_LZMA .config = z_erofs_load_lzma_config, .decompress = z_erofs_lzma_decompress, +#endif .name = "lzma" }, -#endif -#ifdef CONFIG_EROFS_FS_ZIP_DEFLATE [Z_EROFS_COMPRESSION_DEFLATE] = { +#ifdef CONFIG_EROFS_FS_ZIP_DEFLATE .config = z_erofs_load_deflate_config, .decompress = z_erofs_deflate_decompress, +#endif .name = "deflate" }, -#endif }; +static_assert(ARRAY_SIZE(erofs_decompressors) == Z_EROFS_COMPRESSION_RUNTIME_MAX); int z_erofs_parse_cfgs(struct super_block *sb, struct erofs_super_block *dsb) { @@ -433,10 +434,9 @@ int z_erofs_parse_cfgs(struct super_block *sb, struct erofs_super_block *dsb) break; } - if (alg >= ARRAY_SIZE(erofs_decompressors) || - !erofs_decompressors[alg].config) { - erofs_err(sb, "algorithm %ld isn't enabled on this kernel", - alg); + if (!erofs_decompressors[alg].config) { + erofs_err(sb, "algorithm %s isn't enabled on this kernel", + erofs_decompressors[alg].name); ret = -EOPNOTSUPP; } else { ret = erofs_decompressors[alg].config(sb, -- 2.34.1
