Re: [PATCH] buffer_io_error: Use dev_err_ratelimited

From: Andy Shevchenko
Date: Mon Oct 26 2020 - 18:07:27 EST


On Mon, Oct 26, 2020 at 10:59 PM Tony Asleson <tasleson@xxxxxxxxxx> wrote:
>
> Replace printk_ratelimited with dev_err_ratelimited which
> adds dev_printk meta data. This is used by journald to
> add disk ID information to the journal entry.


> This re-worked change is from a different patch series
> and utilizes the following suggestions.
>
> - Reduce indentation level (Andy Shevchenko)
> - Remove unneeded () for conditional operator (Sergei Shtylyov)

This should go as a changelog after the cutter '---' line...

> Signed-off-by: Tony Asleson <tasleson@xxxxxxxxxx>
> ---

...somewhere here.

...

> - if (!test_bit(BH_Quiet, &bh->b_state))
> - printk_ratelimited(KERN_ERR
> - "Buffer I/O error on dev %pg, logical block %llu%s\n",
> - bh->b_bdev, (unsigned long long)bh->b_blocknr, msg);
> + struct device *gendev;
> +
> + if (test_bit(BH_Quiet, &bh->b_state))
> + return;
> +

> + gendev = bh->b_bdev->bd_disk ?
> + disk_to_dev(bh->b_bdev->bd_disk) : NULL;

I'm not sure it's a good idea to print '(null)'.

Perhaps

if (bh->b_bdev->bd_disk)
dev_err_ratelimit(disk_to_dev(bh->b_bdev->bd_disk), ...);
else
pr_err_ratelimit(...);

?

> + dev_err_ratelimited(gendev,
> + "Buffer I/O error, logical block %llu%s\n",

> + (unsigned long long)bh->b_blocknr, msg);

It's a u64 always (via sector_t), do we really need a casting?

> }

--
With Best Regards,
Andy Shevchenko