summary refs log tree commit diff
path: root/drivers/md
diff options
context:
space:
mode:
authorArthur Jones <ajones@riverbed.com>2008-07-25 12:03:38 -0700
committerNeilBrown <neilb@suse.de>2008-08-01 12:55:14 +1000
commit388667bed591b2359713bb17d5de0cf56e961447 (patch)
treeaa8a28db549719fecc540c9c0faf5bba58827ab2 /drivers/md
parente542713529e323ff09d7aeb5806cf29f6f160f53 (diff)
downloadlinux-388667bed591b2359713bb17d5de0cf56e961447.tar.gz
md: raid10: wake up frozen array
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>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/raid10.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 2acea4025243..8674a5f7e706 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -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);
 }