Skip to contentSkip to conversation

FAILED: patch "[PATCH] btrfs: reset compression level for lzo on remount" failed to apply to 4.14-stable tree

PATCH [email protected] 1 participant 1 message Aug 31, 2020

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 282dd7d7718444679b046b769d872b188818ca35 Mon Sep 17 00:00:00 2001
From: Marcos Paulo de Souza <[email protected]>
Date: Mon, 3 Aug 2020 16:55:01 -0300
Subject: [PATCH] btrfs: reset compression level for lzo on remount

Currently a user can set mount "-o compress" which will set the compression algorithm to zlib, and use the default compress level for zlib (3):

relatime,compress=zlib:3,space_cache

If the user remounts the fs using "-o compress=lzo", then the old compress_level is used:

relatime,compress=lzo:3,space_cache

But lzo does not expose any tunable compression level. The same happens if we set any compress argument with different level, also with zstd.

Fix this by resetting the compress_level when compress=lzo is specified. With the fix applied, lzo is shown without compress level:

relatime,compress=lzo,space_cache

fs/btrfs/super.c +1 -0
index e529ddb35b87..25967ecaaf0a 100644
@@ -625,6 +625,7 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options,
 			} else if (strncmp(args[0].from, "lzo", 3) == 0) {
 				compress_type = "lzo";
 				info->compress_type = BTRFS_COMPRESS_LZO;
+				info->compress_level = 0;
 				btrfs_set_opt(info->mount_opt, COMPRESS);
 				btrfs_clear_opt(info->mount_opt, NODATACOW);
 				btrfs_clear_opt(info->mount_opt, NODATASUM);