Commit cd1635d
committed
md/raid5: fix IO hang with degraded array with llbitmap
When llbitmap bit state is still unwritten, any new write should force
rcw, as bitmap_ops->blocks_synced() is checked in handle_stripe_dirtying().
However, later the same check is missing in need_this_block(), causing
stripe to deadloop during handling because handle_stripe() will decide
to go to handle_stripe_fill(), meanwhile need_this_block() always return
0 and nothing is handled.
Link: https://lore.kernel.org/linux-raid/[email protected]
Fixes: 5ab829f ("md/md-llbitmap: introduce new lockless bitmap")
Signed-off-by: Yu Kuai <[email protected]>
Reviewed-by: Li Nan <[email protected]>1 parent 5d1dd57 commit cd1635d
1 file changed
Lines changed: 6 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3751 | 3751 | | |
3752 | 3752 | | |
3753 | 3753 | | |
| 3754 | + | |
| 3755 | + | |
3754 | 3756 | | |
3755 | | - | |
3756 | 3757 | | |
| 3758 | + | |
| 3759 | + | |
| 3760 | + | |
| 3761 | + | |
3757 | 3762 | | |
3758 | 3763 | | |
3759 | 3764 | | |
| |||
0 commit comments