2020-11-17 20:41:31

by Tony Asleson

[permalink] [raw]
Subject: [v2] buffer_io_error: Use dev_err_ratelimited

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.

Signed-off-by: Tony Asleson <[email protected]>
---

V2:

- Move change log to after marker line (Andy Shevchenko)
- Remove printk cast (Andy Shevchenko)

V1:

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)

fs/buffer.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 50bbc99e3d96..32f237e350bf 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",
+ bh->b_blocknr, msg);
}

/*

base-commit: bbf5c979011a099af5dc76498918ed7df445635b
--
2.26.2