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

Ye Bin posted 2 patches 2 years, 3 months ago
There is a newer version of this series
[PATCH 1/2] JBD2: print io_block if check data block checksum failed when do recovery
Posted by Ye Bin 2 years, 3 months ago
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 <yebin10@huawei.com>
---
 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
Re: [PATCH 1/2] JBD2: print io_block if check data block checksum failed when do recovery
Posted by Jan Kara 2 years, 3 months ago
On Mon 04-09-23 09:10:20, Ye Bin wrote:
> 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 <yebin10@huawei.com>
> ---
>  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,

I'd make the message "...in journal block %lu\n". Otherwise the patch looks
good so feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR