|
@@ -837,6 +837,15 @@ static void stripe_add_to_batch_list(struct r5conf *conf, struct stripe_head *sh
|
|
|
< IO_THRESHOLD)
|
|
|
md_wakeup_thread(conf->mddev->thread);
|
|
|
|
|
|
+ if (test_and_clear_bit(STRIPE_BIT_DELAY, &sh->state)) {
|
|
|
+ int seq = sh->bm_seq;
|
|
|
+ if (test_bit(STRIPE_BIT_DELAY, &sh->batch_head->state) &&
|
|
|
+ sh->batch_head->bm_seq > seq)
|
|
|
+ seq = sh->batch_head->bm_seq;
|
|
|
+ set_bit(STRIPE_BIT_DELAY, &sh->batch_head->state);
|
|
|
+ sh->batch_head->bm_seq = seq;
|
|
|
+ }
|
|
|
+
|
|
|
atomic_inc(&sh->count);
|
|
|
unlock_out:
|
|
|
unlock_two_stripes(head, sh);
|