aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid10.c
diff options
context:
space:
mode:
authorArthur Jones <ajones@riverbed.com>2008-07-25 15:03:38 -0400
committerNeilBrown <neilb@suse.de>2008-07-31 22:55:14 -0400
commit388667bed591b2359713bb17d5de0cf56e961447 (patch)
treeaa8a28db549719fecc540c9c0faf5bba58827ab2 /drivers/md/raid10.c
parente542713529e323ff09d7aeb5806cf29f6f160f53 (diff)
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/raid10.c')
-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)
215 conf->nr_queued ++; 215 conf->nr_queued ++;
216 spin_unlock_irqrestore(&conf->device_lock, flags); 216 spin_unlock_irqrestore(&conf->device_lock, flags);
217 217
218 /* wake up frozen array... */
219 wake_up(&conf->wait_barrier);
220
218 md_wakeup_thread(mddev->thread); 221 md_wakeup_thread(mddev->thread);
219} 222}
220 223