aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/compression.c2
-rw-r--r--fs/btrfs/compression.h2
-rw-r--r--fs/btrfs/super.c13
3 files changed, 14 insertions, 3 deletions
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
index 4a78e5726337..5982c8a71f02 100644
--- a/fs/btrfs/compression.c
+++ b/fs/btrfs/compression.c
@@ -1529,5 +1529,5 @@ unsigned int btrfs_compress_str2level(const char *str)
1529 if (str[4] == ':' && '1' <= str[5] && str[5] <= '9' && str[6] == 0) 1529 if (str[4] == ':' && '1' <= str[5] && str[5] <= '9' && str[6] == 0)
1530 return str[5] - '0'; 1530 return str[5] - '0';
1531 1531
1532 return 0; 1532 return BTRFS_ZLIB_DEFAULT_LEVEL;
1533} 1533}
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index 93c5b82ae97e..0868cc554f14 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -34,6 +34,8 @@
34/* Maximum size of data before compression */ 34/* Maximum size of data before compression */
35#define BTRFS_MAX_UNCOMPRESSED (SZ_128K) 35#define BTRFS_MAX_UNCOMPRESSED (SZ_128K)
36 36
37#define BTRFS_ZLIB_DEFAULT_LEVEL 3
38
37struct compressed_bio { 39struct compressed_bio {
38 /* number of bios pending for this compressed extent */ 40 /* number of bios pending for this compressed extent */
39 refcount_t pending_bios; 41 refcount_t pending_bios;
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index 65af029559b5..ff3545e526f5 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -507,9 +507,18 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options,
507 token == Opt_compress_force || 507 token == Opt_compress_force ||
508 strncmp(args[0].from, "zlib", 4) == 0) { 508 strncmp(args[0].from, "zlib", 4) == 0) {
509 compress_type = "zlib"; 509 compress_type = "zlib";
510
510 info->compress_type = BTRFS_COMPRESS_ZLIB; 511 info->compress_type = BTRFS_COMPRESS_ZLIB;
511 info->compress_level = 512 info->compress_level = BTRFS_ZLIB_DEFAULT_LEVEL;
512 btrfs_compress_str2level(args[0].from); 513 /*
514 * args[0] contains uninitialized data since
515 * for these tokens we don't expect any
516 * parameter.
517 */
518 if (token != Opt_compress &&
519 token != Opt_compress_force)
520 info->compress_level =
521 btrfs_compress_str2level(args[0].from);
513 btrfs_set_opt(info->mount_opt, COMPRESS); 522 btrfs_set_opt(info->mount_opt, COMPRESS);
514 btrfs_clear_opt(info->mount_opt, NODATACOW); 523 btrfs_clear_opt(info->mount_opt, NODATACOW);
515 btrfs_clear_opt(info->mount_opt, NODATASUM); 524 btrfs_clear_opt(info->mount_opt, NODATASUM);