md: raid10: wake up frozen array
authorArthur Jones <ajones@riverbed.com>
Fri, 25 Jul 2008 19:03:38 +0000 (12:03 -0700)
committerNeilBrown <neilb@suse.de>
Fri, 1 Aug 2008 02:55:14 +0000 (12:55 +1000)
When rescheduling a bio in raid10, we wake up
the md thread, but if the array is frozen, this
will have no effect.  This causes the array to
remain frozen for eternity.  We add a wake_up
to allow the array to de-freeze.  This code is
nearly identical to the raid1 code, which has
this fix already.

Signed-off-by: Arthur Jones <ajones@riverbed.com>
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid10.c

index 2acea4025243885d2df685b29a47bc8b48ab89fd..8674a5f7e706125a730893b53af45b0a91f00064 100644 (file)
@@ -215,6 +215,9 @@ static void reschedule_retry(r10bio_t *r10_bio)
        conf->nr_queued ++;
        spin_unlock_irqrestore(&conf->device_lock, flags);
 
+       /* wake up frozen array... */
+       wake_up(&conf->wait_barrier);
+
        md_wakeup_thread(mddev->thread);
 }