|
@@ -238,8 +238,13 @@ repeat_alloc:
|
|
init_wait(&wait);
|
|
init_wait(&wait);
|
|
prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE);
|
|
prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE);
|
|
smp_mb();
|
|
smp_mb();
|
|
- if (!pool->curr_nr)
|
|
|
|
- io_schedule();
|
|
|
|
|
|
+ if (!pool->curr_nr) {
|
|
|
|
+ /*
|
|
|
|
+ * FIXME: this should be io_schedule(). The timeout is there
|
|
|
|
+ * as a workaround for some DM problems in 2.6.18.
|
|
|
|
+ */
|
|
|
|
+ io_schedule_timeout(5*HZ);
|
|
|
|
+ }
|
|
finish_wait(&pool->wait, &wait);
|
|
finish_wait(&pool->wait, &wait);
|
|
|
|
|
|
goto repeat_alloc;
|
|
goto repeat_alloc;
|