From d334ad2ff46f01cb972b2900dbfcbb10d266a3cd Mon Sep 17 00:00:00 2001 From: Nick Terrell Date: Mon, 29 Mar 2021 17:52:28 -0700 Subject: [PATCH] [contrib][linux-kernel] Add zstd_min_clevel() and zstd_max_clevel() --- contrib/linux-kernel/linux_zstd.h | 14 ++++++++++++++ contrib/linux-kernel/test/test.c | 9 +++++++++ contrib/linux-kernel/zstd_compress_module.c | 12 ++++++++++++ 3 files changed, 35 insertions(+) diff --git a/contrib/linux-kernel/linux_zstd.h b/contrib/linux-kernel/linux_zstd.h index 19410081..446ecabc 100644 --- a/contrib/linux-kernel/linux_zstd.h +++ b/contrib/linux-kernel/linux_zstd.h @@ -63,6 +63,20 @@ zstd_error_code zstd_get_error_code(size_t code); */ const char *zstd_get_error_name(size_t code); +/** + * zstd_min_clevel() - minimum allowed compression level + * + * Return: The minimum allowed compression level. + */ +int zstd_min_clevel(void); + +/** + * zstd_max_clevel() - maximum allowed compression level + * + * Return: The maximum allowed compression level. + */ +int zstd_max_clevel(void); + /* ====== Parameter Selection ====== */ /** diff --git a/contrib/linux-kernel/test/test.c b/contrib/linux-kernel/test/test.c index 1ffc397f..9064be79 100644 --- a/contrib/linux-kernel/test/test.c +++ b/contrib/linux-kernel/test/test.c @@ -169,6 +169,13 @@ static void test_decompress_unzstd(test_data_t const *data) { fprintf(stderr, "Ok\n"); } +static void test_f2fs() { + fprintf(stderr, "testing f2fs uses... "); + CONTROL(zstd_min_clevel() < 0); + CONTROL(zstd_max_clevel() == 22); + fprintf(stderr, "Ok\n"); +} + static char *g_stack = NULL; static void __attribute__((noinline)) use(void *x) { @@ -195,6 +202,7 @@ static void __attribute__((noinline)) check_stack() { static void test_stack_usage(test_data_t const *data) { set_stack(); + test_f2fs(); test_btrfs(data); test_decompress_unzstd(data); check_stack(); @@ -202,6 +210,7 @@ static void test_stack_usage(test_data_t const *data) { int main(void) { test_data_t data = create_test_data(); + test_f2fs(); test_btrfs(&data); test_decompress_unzstd(&data); test_stack_usage(&data); diff --git a/contrib/linux-kernel/zstd_compress_module.c b/contrib/linux-kernel/zstd_compress_module.c index fb7dda17..37d08ff4 100644 --- a/contrib/linux-kernel/zstd_compress_module.c +++ b/contrib/linux-kernel/zstd_compress_module.c @@ -17,6 +17,18 @@ #include "common/zstd_deps.h" #include "common/zstd_internal.h" +int zstd_min_clevel(void) +{ + return ZSTD_minCLevel(); +} +EXPORT_SYMBOL(zstd_min_clevel); + +int zstd_max_clevel(void) +{ + return ZSTD_maxCLevel(); +} +EXPORT_SYMBOL(zstd_max_clevel); + size_t zstd_compress_bound(size_t src_size) { return ZSTD_compressBound(src_size);