JBD2: print io_block if check data block checksum failed when do recovery
cover 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(-)
Signature · 1 line
2.31.1
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.
--- fs/jbd2/recovery.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
fs/jbd2/recovery.c +2 -1
@@ -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; }
Signature · 1 line
2.31.1
Quoted 16 lines · Ye Bin
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(-)fs/jbd2/recovery.c +0
-0
fs/jbd2/recovery.c static int do_one_pass(journal_t *journal, · line 664
Quoted 5 lines
fs/jbd2/recovery.c +1
-1@@ -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,
I'd make the message "...in journal block %lu\n". Otherwise the patch looks good so feel free to add:
Honza
Signature · 2 lines
Jan Kara <[email protected]> SUSE Labs, CR
PATCH 2/2 JBD2: fix printk format type for 'io_block' in do_one_pass()
In reply to Ye Bin'io_block' is unsinged long but print it by '%ld'.
--- fs/jbd2/recovery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/jbd2/recovery.c +1 -1
@@ -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;
Signature · 1 line
2.31.1
Re: [PATCH 2/2] JBD2: fix printk format type for 'io_block' in do_one_pass()
Quoted 3 lines · Ye Bin
'
io_block' is unsinged long but print it by '%ld'.Signed-off-by Ye Bin <[email protected]>
Looks good. Feel free to add:
Honza
Quoted 20 lines
--- fs/jbd2/recovery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)fs/jbd2/recovery.c +1
-1@@ -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;Signature · 1 line
2.31.1
Signature · 2 lines
Jan Kara <[email protected]> SUSE Labs, CR