| Date | Tue, 30 Jun 2009 17:24:05 -0700 | From | Greg KH <> | Subject | [patch 076/108] md/raid5: add missing call to schedule() after prepare_to_wait() |
| |
2.6.30-stable review patch. If anyone has any objections, please let us know.
------------------
From: Dan Williams <dan.j.williams@intel.com>
commit 7a3ab908948b6296ee7e81d42f7c176361c51975 upstream.
In the unlikely event that reshape progresses past the current request while it is waiting for a stripe we need to schedule() before retrying for 2 reasons: 1/ Prevent list corruption from duplicated list_add() calls without intervening list_del(). 2/ Give the reshape code a chance to make some progress to resolve the conflict.
Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/md/raid5.c | 1 + 1 file changed, 1 insertion(+)
--- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -3696,6 +3696,7 @@ static int make_request(struct request_q spin_unlock_irq(&conf->device_lock); if (must_retry) { release_stripe(sh); + schedule(); goto retry; } }
|