[1/2] btrfs: define compression levels statically
diff mbox series

Message ID 78207f6784c457dad6583f7bc7eecc495c7d5d54.1565362438.git.dsterba@suse.com
State New
Headers show
Series
  • Compression level API cleanups
Related show

Commit Message

David Sterba Aug. 9, 2019, 2:55 p.m. UTC
The maximum and default levels do not change and can be defined
directly. The set_level callback was a temporary solution and will be
removed.

Signed-off-by: David Sterba <dsterba@suse.com>
---
 fs/btrfs/compression.h | 4 ++++
 fs/btrfs/lzo.c         | 2 ++
 fs/btrfs/zlib.c        | 2 ++
 fs/btrfs/zstd.c        | 2 ++
 4 files changed, 10 insertions(+)

Comments

Nikolay Borisov Aug. 12, 2019, 8:30 a.m. UTC | #1
On 9.08.19 г. 17:55 ч., David Sterba wrote:
> The maximum and default levels do not change and can be defined
> directly. The set_level callback was a temporary solution and will be
> removed.
> 
> Signed-off-by: David Sterba <dsterba@suse.com>
> ---
>  fs/btrfs/compression.h | 4 ++++
>  fs/btrfs/lzo.c         | 2 ++
>  fs/btrfs/zlib.c        | 2 ++
>  fs/btrfs/zstd.c        | 2 ++
>  4 files changed, 10 insertions(+)
> 
> diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
> index 2035b8eb1290..07b2009dc63f 100644
> --- a/fs/btrfs/compression.h
> +++ b/fs/btrfs/compression.h
> @@ -162,6 +162,10 @@ struct btrfs_compress_op {
>  	 * if the level is out of bounds or the default if 0 is passed in.
>  	 */
>  	unsigned int (*set_level)(unsigned int level);
> +
> +	/* Maximum level supported by the compression algorithm */
> +	int max_level;
> +	int default_level;

can levels be negative? If not just define those as unsigned ints and in
the next patch it won't be necessary to use min_t but plain min.

>  };
>  
>  /* The heuristic workspaces are managed via the 0th workspace manager */
> diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c
> index 579d53ae256f..adac6cb30d65 100644
> --- a/fs/btrfs/lzo.c
> +++ b/fs/btrfs/lzo.c
> @@ -523,4 +523,6 @@ const struct btrfs_compress_op btrfs_lzo_compress = {
>  	.decompress_bio		= lzo_decompress_bio,
>  	.decompress		= lzo_decompress,
>  	.set_level		= lzo_set_level,
> +	.max_level		= 1,
> +	.default_level		= 1,
>  };
> diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c
> index b86b7ad6b900..03d6c3683bd9 100644
> --- a/fs/btrfs/zlib.c
> +++ b/fs/btrfs/zlib.c
> @@ -437,4 +437,6 @@ const struct btrfs_compress_op btrfs_zlib_compress = {
>  	.decompress_bio		= zlib_decompress_bio,
>  	.decompress		= zlib_decompress,
>  	.set_level              = zlib_set_level,
> +	.max_level		= 9,
> +	.default_level		= BTRFS_ZLIB_DEFAULT_LEVEL,
>  };
> diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c
> index 3837ca180d52..b2b23a6a497d 100644
> --- a/fs/btrfs/zstd.c
> +++ b/fs/btrfs/zstd.c
> @@ -729,4 +729,6 @@ const struct btrfs_compress_op btrfs_zstd_compress = {
>  	.decompress_bio = zstd_decompress_bio,
>  	.decompress = zstd_decompress,
>  	.set_level = zstd_set_level,
> +	.max_level	= ZSTD_BTRFS_MAX_LEVEL,
> +	.default_level	= ZSTD_BTRFS_DEFAULT_LEVEL,
>  };
>
David Sterba Aug. 20, 2019, 2:35 p.m. UTC | #2
On Mon, Aug 12, 2019 at 11:30:42AM +0300, Nikolay Borisov wrote:
> 
> 
> On 9.08.19 г. 17:55 ч., David Sterba wrote:
> > The maximum and default levels do not change and can be defined
> > directly. The set_level callback was a temporary solution and will be
> > removed.
> > 
> > Signed-off-by: David Sterba <dsterba@suse.com>
> > ---
> >  fs/btrfs/compression.h | 4 ++++
> >  fs/btrfs/lzo.c         | 2 ++
> >  fs/btrfs/zlib.c        | 2 ++
> >  fs/btrfs/zstd.c        | 2 ++
> >  4 files changed, 10 insertions(+)
> > 
> > diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
> > index 2035b8eb1290..07b2009dc63f 100644
> > --- a/fs/btrfs/compression.h
> > +++ b/fs/btrfs/compression.h
> > @@ -162,6 +162,10 @@ struct btrfs_compress_op {
> >  	 * if the level is out of bounds or the default if 0 is passed in.
> >  	 */
> >  	unsigned int (*set_level)(unsigned int level);
> > +
> > +	/* Maximum level supported by the compression algorithm */
> > +	int max_level;
> > +	int default_level;
> 
> can levels be negative? If not just define those as unsigned ints and in
> the next patch it won't be necessary to use min_t but plain min.

No, levels should be >= 0.

Patch
diff mbox series

diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h
index 2035b8eb1290..07b2009dc63f 100644
--- a/fs/btrfs/compression.h
+++ b/fs/btrfs/compression.h
@@ -162,6 +162,10 @@  struct btrfs_compress_op {
 	 * if the level is out of bounds or the default if 0 is passed in.
 	 */
 	unsigned int (*set_level)(unsigned int level);
+
+	/* Maximum level supported by the compression algorithm */
+	int max_level;
+	int default_level;
 };
 
 /* The heuristic workspaces are managed via the 0th workspace manager */
diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c
index 579d53ae256f..adac6cb30d65 100644
--- a/fs/btrfs/lzo.c
+++ b/fs/btrfs/lzo.c
@@ -523,4 +523,6 @@  const struct btrfs_compress_op btrfs_lzo_compress = {
 	.decompress_bio		= lzo_decompress_bio,
 	.decompress		= lzo_decompress,
 	.set_level		= lzo_set_level,
+	.max_level		= 1,
+	.default_level		= 1,
 };
diff --git a/fs/btrfs/zlib.c b/fs/btrfs/zlib.c
index b86b7ad6b900..03d6c3683bd9 100644
--- a/fs/btrfs/zlib.c
+++ b/fs/btrfs/zlib.c
@@ -437,4 +437,6 @@  const struct btrfs_compress_op btrfs_zlib_compress = {
 	.decompress_bio		= zlib_decompress_bio,
 	.decompress		= zlib_decompress,
 	.set_level              = zlib_set_level,
+	.max_level		= 9,
+	.default_level		= BTRFS_ZLIB_DEFAULT_LEVEL,
 };
diff --git a/fs/btrfs/zstd.c b/fs/btrfs/zstd.c
index 3837ca180d52..b2b23a6a497d 100644
--- a/fs/btrfs/zstd.c
+++ b/fs/btrfs/zstd.c
@@ -729,4 +729,6 @@  const struct btrfs_compress_op btrfs_zstd_compress = {
 	.decompress_bio = zstd_decompress_bio,
 	.decompress = zstd_decompress,
 	.set_level = zstd_set_level,
+	.max_level	= ZSTD_BTRFS_MAX_LEVEL,
+	.default_level	= ZSTD_BTRFS_DEFAULT_LEVEL,
 };