lkml.org 
[lkml]   [2020]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] f2fs: compress: deny setting unsupported compress algorithm
    Date
    If kernel doesn't support certain kinds of compress algorithm, deny to set
    them as compress algorithm of f2fs via 'compress_algorithm=%s' mount option.

    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    ---
    v2:
    - fix wrong message in log.
    fs/f2fs/super.c | 16 ++++++++++++++++
    1 file changed, 16 insertions(+)

    diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
    index 529ee8ef46c1..bf96f5776f99 100644
    --- a/fs/f2fs/super.c
    +++ b/fs/f2fs/super.c
    @@ -936,9 +936,14 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
    if (!name)
    return -ENOMEM;
    if (!strcmp(name, "lzo")) {
    +#ifdef CONFIG_F2FS_FS_LZO
    F2FS_OPTION(sbi).compress_algorithm =
    COMPRESS_LZO;
    +#else
    + f2fs_info(sbi, "kernel doesn't support lzo compression");
    +#endif
    } else if (!strncmp(name, "lz4", 3)) {
    +#ifdef CONFIG_F2FS_FS_LZ4
    ret = f2fs_compress_set_level(sbi, name,
    COMPRESS_LZ4);
    if (ret) {
    @@ -947,7 +952,11 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
    }
    F2FS_OPTION(sbi).compress_algorithm =
    COMPRESS_LZ4;
    +#else
    + f2fs_info(sbi, "kernel doesn't support lz4 compression");
    +#endif
    } else if (!strncmp(name, "zstd", 4)) {
    +#ifdef CONFIG_F2FS_FS_ZSTD
    ret = f2fs_compress_set_level(sbi, name,
    COMPRESS_ZSTD);
    if (ret) {
    @@ -956,9 +965,16 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
    }
    F2FS_OPTION(sbi).compress_algorithm =
    COMPRESS_ZSTD;
    +#else
    + f2fs_info(sbi, "kernel doesn't support zstd compression");
    +#endif
    } else if (!strcmp(name, "lzo-rle")) {
    +#ifdef CONFIG_F2FS_FS_LZORLE
    F2FS_OPTION(sbi).compress_algorithm =
    COMPRESS_LZORLE;
    +#else
    + f2fs_info(sbi, "kernel doesn't support lzorle compression");
    +#endif
    } else {
    kfree(name);
    return -EINVAL;
    --
    2.29.2
    \
     
     \ /
      Last update: 2020-12-08 04:33    [W:4.739 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site