[PATCH] buffer_io_error: Use dev_err_ratelimited

From: Tony Asleson
Date: Mon Oct 26 2020 - 11:58:22 EST


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)

Signed-off-by: Tony Asleson <tasleson@xxxxxxxxxx>
---
fs/buffer.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 50bbc99e3d96..18175fbb1101 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -125,10 +125,17 @@ EXPORT_SYMBOL(__wait_on_buffer);

static void buffer_io_error(struct buffer_head *bh, char *msg)
{
- 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;
+
+ dev_err_ratelimited(gendev,
+ "Buffer I/O error, logical block %llu%s\n",
+ (unsigned long long)bh->b_blocknr, msg);
}

/*

base-commit: bbf5c979011a099af5dc76498918ed7df445635b
--
2.26.2