diff options
| -rw-r--r-- | fs/btrfs/compression.c | 2 | ||||
| -rw-r--r-- | fs/btrfs/compression.h | 2 | ||||
| -rw-r--r-- | fs/btrfs/super.c | 13 |
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 | |||
| 37 | struct compressed_bio { | 39 | struct 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); |
