Re: raid5 Journal Recovery Bug
From: Logan Gunthorpe <logang@deltatee.com>
Date: 2022-08-22 16:28:20
On 2022-08-22 01:04, Song Liu wrote:
Could you please add some printk so that we know which condition triggered
handle_stripe_fill() here:
if (s.to_read || s.non_overwrite
|| (s.to_write && s.failed)
|| (s.syncing && (s.uptodate + s.compute < disks))
|| s.replacing
|| s.expanding)
handle_stripe_fill(sh, &s, disks);
This would help us narrow down to the exact condition. I guess it is
"(s.to_write && s.failed)", but I am not quite sure.Ok, I hit this bug on a stripe and got these values for the call: to_read = 0 non_overwrite = 0 to_write = 0 failed = 1 syncing = 1 uptodate = 2 compute = 0 disks = 3 replacing = 0 expanding = 0 So it's actually the "(s.syncing && (s.uptodate + s.compute < disks))" condition that is getting hit. Thanks, Logan