* [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines
@ 2025-04-06 15:26 Integral
2025-04-06 15:27 ` [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse() Integral
2025-04-06 17:35 ` [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Kent Overstreet
0 siblings, 2 replies; 4+ messages in thread
From: Integral @ 2025-04-06 15:26 UTC (permalink / raw)
To: Kent Overstreet, Kent Overstreet; +Cc: linux-bcachefs, linux-kernel, Integral
When an invalid compression type or level is passed as an argument
to `--compression`, two error messages are squashed into one line:
> bcachefs format --compression=lzo bcachefs-comp.img
invalid option: invalid compression typecompression: parse error
> bcachefs format --compression=lz4:16 bcachefs-comp.img
invalid option: invalid compression levelcompression: parse error
To resolve this issue, add a newline character at the end of the
first error message to separate them into two lines.
Signed-off-by: Integral <integral@archlinuxcn.org>
---
fs/bcachefs/compress.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/bcachefs/compress.c b/fs/bcachefs/compress.c
index 28ed32449913..d68c3c7896a3 100644
--- a/fs/bcachefs/compress.c
+++ b/fs/bcachefs/compress.c
@@ -714,7 +714,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
ret = match_string(bch2_compression_opts, -1, type_str);
if (ret < 0 && err)
- prt_str(err, "invalid compression type");
+ prt_str(err, "invalid compression type\n");
if (ret < 0)
goto err;
@@ -729,7 +729,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
if (!ret && level > 15)
ret = -EINVAL;
if (ret < 0 && err)
- prt_str(err, "invalid compression level");
+ prt_str(err, "invalid compression level\n");
if (ret < 0)
goto err;
--
2.49.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse()
2025-04-06 15:26 [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Integral
@ 2025-04-06 15:27 ` Integral
2025-04-06 17:37 ` Kent Overstreet
2025-04-06 17:35 ` [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Kent Overstreet
1 sibling, 1 reply; 4+ messages in thread
From: Integral @ 2025-04-06 15:27 UTC (permalink / raw)
To: Kent Overstreet, Kent Overstreet; +Cc: linux-bcachefs, linux-kernel, Integral
Refactor if statements in bch2_opt_compression_parse() to make it
simpler & clearer.
Signed-off-by: Integral <integral@archlinuxcn.org>
---
fs/bcachefs/compress.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/fs/bcachefs/compress.c b/fs/bcachefs/compress.c
index d68c3c7896a3..adf939b47107 100644
--- a/fs/bcachefs/compress.c
+++ b/fs/bcachefs/compress.c
@@ -713,10 +713,11 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
level_str = p;
ret = match_string(bch2_compression_opts, -1, type_str);
- if (ret < 0 && err)
- prt_str(err, "invalid compression type\n");
- if (ret < 0)
+ if (ret < 0) {
+ if (err)
+ prt_str(err, "invalid compression type\n");
goto err;
+ }
opt.type = ret;
@@ -724,14 +725,13 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
unsigned level;
ret = kstrtouint(level_str, 10, &level);
- if (!ret && !opt.type && level)
- ret = -EINVAL;
- if (!ret && level > 15)
+ if (!ret && ((!opt.type && level) || level > 15))
ret = -EINVAL;
- if (ret < 0 && err)
- prt_str(err, "invalid compression level\n");
- if (ret < 0)
+ if (ret < 0) {
+ if (err)
+ prt_str(err, "invalid compression level\n");
goto err;
+ }
opt.level = level;
}
--
2.49.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines
2025-04-06 15:26 [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Integral
2025-04-06 15:27 ` [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse() Integral
@ 2025-04-06 17:35 ` Kent Overstreet
1 sibling, 0 replies; 4+ messages in thread
From: Kent Overstreet @ 2025-04-06 17:35 UTC (permalink / raw)
To: Integral; +Cc: Kent Overstreet, linux-bcachefs, linux-kernel
On Sun, Apr 06, 2025 at 11:26:59PM +0800, Integral wrote:
> When an invalid compression type or level is passed as an argument
> to `--compression`, two error messages are squashed into one line:
>
> > bcachefs format --compression=lzo bcachefs-comp.img
> invalid option: invalid compression typecompression: parse error
>
> > bcachefs format --compression=lz4:16 bcachefs-comp.img
> invalid option: invalid compression levelcompression: parse error
>
> To resolve this issue, add a newline character at the end of the
> first error message to separate them into two lines.
>
> Signed-off-by: Integral <integral@archlinuxcn.org>
Applied
I've also been working on consistent indentation for multiline error/log
messages, so that we can see grouping better.
If you want to add that, the new helper is
printbuf_indent_add_nextline()
With that we can initialize a printbuffer and at the same time set it so
that lines after the first are two space indented.
> ---
> fs/bcachefs/compress.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/bcachefs/compress.c b/fs/bcachefs/compress.c
> index 28ed32449913..d68c3c7896a3 100644
> --- a/fs/bcachefs/compress.c
> +++ b/fs/bcachefs/compress.c
> @@ -714,7 +714,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
>
> ret = match_string(bch2_compression_opts, -1, type_str);
> if (ret < 0 && err)
> - prt_str(err, "invalid compression type");
> + prt_str(err, "invalid compression type\n");
> if (ret < 0)
> goto err;
>
> @@ -729,7 +729,7 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
> if (!ret && level > 15)
> ret = -EINVAL;
> if (ret < 0 && err)
> - prt_str(err, "invalid compression level");
> + prt_str(err, "invalid compression level\n");
> if (ret < 0)
> goto err;
>
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse()
2025-04-06 15:27 ` [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse() Integral
@ 2025-04-06 17:37 ` Kent Overstreet
0 siblings, 0 replies; 4+ messages in thread
From: Kent Overstreet @ 2025-04-06 17:37 UTC (permalink / raw)
To: Integral; +Cc: Kent Overstreet, linux-bcachefs, linux-kernel
On Sun, Apr 06, 2025 at 11:27:00PM +0800, Integral wrote:
> Refactor if statements in bch2_opt_compression_parse() to make it
> simpler & clearer.
>
> Signed-off-by: Integral <integral@archlinuxcn.org>
> ---
> fs/bcachefs/compress.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/fs/bcachefs/compress.c b/fs/bcachefs/compress.c
> index d68c3c7896a3..adf939b47107 100644
> --- a/fs/bcachefs/compress.c
> +++ b/fs/bcachefs/compress.c
> @@ -713,10 +713,11 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
> level_str = p;
>
> ret = match_string(bch2_compression_opts, -1, type_str);
> - if (ret < 0 && err)
> - prt_str(err, "invalid compression type\n");
> - if (ret < 0)
> + if (ret < 0) {
> + if (err)
> + prt_str(err, "invalid compression type\n");
> goto err;
> + }
I prefer the old code for this one
>
> opt.type = ret;
>
> @@ -724,14 +725,13 @@ int bch2_opt_compression_parse(struct bch_fs *c, const char *_val, u64 *res,
> unsigned level;
>
> ret = kstrtouint(level_str, 10, &level);
> - if (!ret && !opt.type && level)
> - ret = -EINVAL;
> - if (!ret && level > 15)
> + if (!ret && ((!opt.type && level) || level > 15))
> ret = -EINVAL;
This part does look better, though.
> - if (ret < 0 && err)
> - prt_str(err, "invalid compression level\n");
> - if (ret < 0)
> + if (ret < 0) {
> + if (err)
> + prt_str(err, "invalid compression level\n");
> goto err;
> + }
>
> opt.level = level;
> }
> --
> 2.49.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-04-06 17:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-06 15:26 [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Integral
2025-04-06 15:27 ` [PATCH 2/2] bcachefs: refactor if statements in bch2_opt_compression_parse() Integral
2025-04-06 17:37 ` Kent Overstreet
2025-04-06 17:35 ` [PATCH 1/2] bcachefs: split error messages of invalid compression into two lines Kent Overstreet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox