raid5: Add per-stripe lock on toread in func
PATCH 1/3 raid5: Add per-stripe lock on toread in func
Commit b17459c05000fdbe8 introduce per-stripe lock,but it omit this place.
Signed-off-by Jianpeng Ma <[email protected]>
--- drivers/md/raid5.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/md/raid5.c +2 -0
@@ -2523,8 +2523,10 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh,if (!test_bit (R5_Wantfill, &sh->dev[i].flags) && (!test_bit (R5_Insync, &sh->dev[i].flags) ||test_bit (R5_ReadError, &sh->dev[i].flags))) { +spin_lock_irq (&sh->stripe_lock); bi = sh->dev[i].toread; sh->dev[i].toread =NULL ; +spin_unlock_irq (&sh->stripe_lock);if (test_and_clear_bit (R5_Overlap, &sh->dev[i].flags))wake_up (&conf->wait_for_overlap);if (bi) s->to_read--;
Signature · 1 line
1.7.9.5