btrfs: allow setting zlib compression level via :9
This is bikeshedding, but it seems people are drastically more likely to understand "zlib:9" as compression level rather than an algorithm version compared to "zlib9". Based on feedback on the mailinglist, the ":9" will be the only accepted syntax. The level must be a single digit. Unrecognized format will result to the default, for forward compatibility in a similar way the compression algorithm specifier was relaxed in commit a7164fa4e055daf6368c ("btrfs: prepare for extensions in compression options"). Signed-off-by: Adam Borowski <kilobyte@angband.pl> Reviewed-by: David Sterba <dsterba@suse.com> [ tighten the accepted format ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
f51d2b5912
commit
fa4d885a48
@ -1111,8 +1111,9 @@ unsigned int btrfs_compress_str2level(const char *str)
|
||||
if (strncmp(str, "zlib", 4) != 0)
|
||||
return 0;
|
||||
|
||||
if ('1' <= str[4] && str[4] <= '9' )
|
||||
return str[4] - '0';
|
||||
/* Accepted form: zlib:1 up to zlib:9 and nothing left after the number */
|
||||
if (str[4] == ':' && '1' <= str[5] && str[5] <= '9' && str[6] == 0)
|
||||
return str[5] - '0';
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1261,7 +1261,7 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry)
|
||||
else
|
||||
seq_printf(seq, ",compress=%s", compress_type);
|
||||
if (info->compress_level)
|
||||
seq_printf(seq, "%d", info->compress_level);
|
||||
seq_printf(seq, ":%d", info->compress_level);
|
||||
}
|
||||
if (btrfs_test_opt(info, NOSSD))
|
||||
seq_puts(seq, ",nossd");
|
||||
|
Loading…
x
Reference in New Issue
Block a user