2021-07-15 03:21:47

by Justin He

[permalink] [raw]
Subject: [PATCH RFC 11/13] md/bitmap: simplify the printing with '%pD' specifier

After the behavior of '%pD' is changed to print the full path of file,
the log printing can be simplified.

Given the space with proper length would be allocated in vprintk_store(),
it is worthy of dropping kmalloc()/kfree() to avoid additional space
allocation. The error case is well handled in d_path_unsafe(), the error
string would be copied in '%pD' buffer, no need to additionally handle
IS_ERR().

Cc: Song Liu <[email protected]>
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Jia He <[email protected]>
---
drivers/md/md-bitmap.c | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
index e29c6298ef5c..a82f1c2ef83c 100644
--- a/drivers/md/md-bitmap.c
+++ b/drivers/md/md-bitmap.c
@@ -862,21 +862,12 @@ static void md_bitmap_file_unmap(struct bitmap_storage *store)
*/
static void md_bitmap_file_kick(struct bitmap *bitmap)
{
- char *path, *ptr = NULL;
-
if (!test_and_set_bit(BITMAP_STALE, &bitmap->flags)) {
md_bitmap_update_sb(bitmap);

if (bitmap->storage.file) {
- path = kmalloc(PAGE_SIZE, GFP_KERNEL);
- if (path)
- ptr = file_path(bitmap->storage.file,
- path, PAGE_SIZE);
-
- pr_warn("%s: kicking failed bitmap file %s from array!\n",
- bmname(bitmap), IS_ERR(ptr) ? "" : ptr);
-
- kfree(path);
+ pr_warn("%s: kicking failed bitmap file %pD from array!\n",
+ bmname(bitmap), bitmap->storage.file);
} else
pr_warn("%s: disabling internal bitmap due to errors\n",
bmname(bitmap));
--
2.17.1


2021-07-16 09:41:02

by Guoqing Jiang

[permalink] [raw]
Subject: Re: [PATCH RFC 11/13] md/bitmap: simplify the printing with '%pD' specifier



On 7/15/21 11:15 AM, Jia He wrote:
> After the behavior of '%pD' is changed to print the full path of file,
> the log printing can be simplified.
>
> Given the space with proper length would be allocated in vprintk_store(),
> it is worthy of dropping kmalloc()/kfree() to avoid additional space
> allocation. The error case is well handled in d_path_unsafe(), the error
> string would be copied in '%pD' buffer, no need to additionally handle
> IS_ERR().
>
> Cc: Song Liu <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Jia He <[email protected]>
> ---
> drivers/md/md-bitmap.c | 13 ++-----------
> 1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
> index e29c6298ef5c..a82f1c2ef83c 100644
> --- a/drivers/md/md-bitmap.c
> +++ b/drivers/md/md-bitmap.c
> @@ -862,21 +862,12 @@ static void md_bitmap_file_unmap(struct bitmap_storage *store)
> */
> static void md_bitmap_file_kick(struct bitmap *bitmap)
> {
> - char *path, *ptr = NULL;
> -
> if (!test_and_set_bit(BITMAP_STALE, &bitmap->flags)) {
> md_bitmap_update_sb(bitmap);
>
> if (bitmap->storage.file) {
> - path = kmalloc(PAGE_SIZE, GFP_KERNEL);
> - if (path)
> - ptr = file_path(bitmap->storage.file,
> - path, PAGE_SIZE);
> -
> - pr_warn("%s: kicking failed bitmap file %s from array!\n",
> - bmname(bitmap), IS_ERR(ptr) ? "" : ptr);
> -
> - kfree(path);
> + pr_warn("%s: kicking failed bitmap file %pD from array!\n",
> + bmname(bitmap), bitmap->storage.file);
> } else
> pr_warn("%s: disabling internal bitmap due to errors\n",
> bmname(bitmap));

Looks good,  Acked-by: Guoqing Jiang <[email protected]>

Thanks,
Guoqing

2021-07-23 17:07:17

by Song Liu

[permalink] [raw]
Subject: Re: [PATCH RFC 11/13] md/bitmap: simplify the printing with '%pD' specifier

On Fri, Jul 16, 2021 at 2:41 AM Guoqing Jiang <[email protected]> wrote:
>
>
>
> On 7/15/21 11:15 AM, Jia He wrote:
> > After the behavior of '%pD' is changed to print the full path of file,
> > the log printing can be simplified.
> >
> > Given the space with proper length would be allocated in vprintk_store(),
> > it is worthy of dropping kmalloc()/kfree() to avoid additional space
> > allocation. The error case is well handled in d_path_unsafe(), the error
> > string would be copied in '%pD' buffer, no need to additionally handle
> > IS_ERR().
> >
> > Cc: Song Liu <[email protected]>
> > Cc: [email protected]
> > Cc: [email protected]
> > Signed-off-by: Jia He <[email protected]>
> > ---
> > drivers/md/md-bitmap.c | 13 ++-----------
> > 1 file changed, 2 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c
> > index e29c6298ef5c..a82f1c2ef83c 100644
> > --- a/drivers/md/md-bitmap.c
> > +++ b/drivers/md/md-bitmap.c
> > @@ -862,21 +862,12 @@ static void md_bitmap_file_unmap(struct bitmap_storage *store)
> > */
> > static void md_bitmap_file_kick(struct bitmap *bitmap)
> > {
> > - char *path, *ptr = NULL;
> > -
> > if (!test_and_set_bit(BITMAP_STALE, &bitmap->flags)) {
> > md_bitmap_update_sb(bitmap);
> >
> > if (bitmap->storage.file) {
> > - path = kmalloc(PAGE_SIZE, GFP_KERNEL);
> > - if (path)
> > - ptr = file_path(bitmap->storage.file,
> > - path, PAGE_SIZE);
> > -
> > - pr_warn("%s: kicking failed bitmap file %s from array!\n",
> > - bmname(bitmap), IS_ERR(ptr) ? "" : ptr);
> > -
> > - kfree(path);
> > + pr_warn("%s: kicking failed bitmap file %pD from array!\n",
> > + bmname(bitmap), bitmap->storage.file);

This is neat!

Acked-by: Song Liu <[email protected]>




> > } else
> > pr_warn("%s: disabling internal bitmap due to errors\n",
> > bmname(bitmap));
>
> Looks good, Acked-by: Guoqing Jiang <[email protected]>