diff options
Diffstat (limited to 'mm/mempool.c')
| -rw-r--r-- | mm/mempool.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mm/mempool.c b/mm/mempool.c index fe6e05289cc5..ccd8cb8cd41f 100644 --- a/mm/mempool.c +++ b/mm/mempool.c | |||
| @@ -238,8 +238,13 @@ repeat_alloc: | |||
| 238 | init_wait(&wait); | 238 | init_wait(&wait); |
| 239 | prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE); | 239 | prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE); |
| 240 | smp_mb(); | 240 | smp_mb(); |
| 241 | if (!pool->curr_nr) | 241 | if (!pool->curr_nr) { |
| 242 | io_schedule(); | 242 | /* |
| 243 | * FIXME: this should be io_schedule(). The timeout is there | ||
| 244 | * as a workaround for some DM problems in 2.6.18. | ||
| 245 | */ | ||
| 246 | io_schedule_timeout(5*HZ); | ||
| 247 | } | ||
| 243 | finish_wait(&pool->wait, &wait); | 248 | finish_wait(&pool->wait, &wait); |
| 244 | 249 | ||
| 245 | goto repeat_alloc; | 250 | goto repeat_alloc; |
