2023-09-04 07:40:33

by yebin (H)

[permalink] [raw]
Subject: [PATCH 0/2] JBD2: print io_block if check data block checksum failed when do recovery

Ye Bin (2):
JBD2: print io_block if check data block checksum failed when do
recovery
JBD2: fix printk format type for 'io_block' in do_one_pass()

fs/jbd2/recovery.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

--
2.31.1


2023-09-04 08:35:01

by yebin (H)

[permalink] [raw]
Subject: [PATCH 1/2] JBD2: print io_block if check data block checksum failed when do recovery

Now, if check data block checksum failed only print data's block number
then skip write data. However, one data block may in more than one transaction.
In some scenarios, offline analysis is inconvenient. As a result, it is
difficult to locate the areas where data is faulty.
So print 'io_block' if check data block checksum failed.

Signed-off-by: Ye Bin <[email protected]>
---
fs/jbd2/recovery.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index c269a7d29a46..a2e2bdaed9f8 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -661,7 +661,8 @@ static int do_one_pass(journal_t *journal,
printk(KERN_ERR "JBD2: Invalid "
"checksum recovering "
"data block %llu in "
- "log\n", blocknr);
+ "log %lu\n", blocknr,
+ io_block);
block_error = 1;
goto skip_write;
}
--
2.31.1

2023-09-04 12:21:57

by yebin (H)

[permalink] [raw]
Subject: [PATCH 2/2] JBD2: fix printk format type for 'io_block' in do_one_pass()

'io_block' is unsinged long but print it by '%ld'.

Signed-off-by: Ye Bin <[email protected]>
---
fs/jbd2/recovery.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index a2e2bdaed9f8..d10dc7f64301 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -632,7 +632,7 @@ static int do_one_pass(journal_t *journal,
success = err;
printk(KERN_ERR
"JBD2: IO error %d recovering "
- "block %ld in log\n",
+ "block %lu in log\n",
err, io_block);
} else {
unsigned long long blocknr;
--
2.31.1