From efb61d2ad24b353a0b5185a3d564d12b029035f1 Mon Sep 17 00:00:00 2001 From: Pavel Mironchik Date: Thu, 31 Aug 2006 21:27:47 -0700 Subject: [PATCH] --- yaml --- r: 33764 b: refs/heads/master c: 0b1d647a02c5a1b67d45287eeb6cb3b2219c41c3 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/mempool.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 4b880d92470d..ecf6b85771f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1e5f5e5cd65eec6ce5c24a9c29f3e52673b121a6 +refs/heads/master: 0b1d647a02c5a1b67d45287eeb6cb3b2219c41c3 diff --git a/trunk/mm/mempool.c b/trunk/mm/mempool.c index fe6e05289cc5..ccd8cb8cd41f 100644 --- a/trunk/mm/mempool.c +++ b/trunk/mm/mempool.c @@ -238,8 +238,13 @@ void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask) init_wait(&wait); prepare_to_wait(&pool->wait, &wait, TASK_UNINTERRUPTIBLE); 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); goto repeat_alloc;