From: Andrew Morton Signed-off-by: Andrew Morton --- drivers/block/cfq-iosched.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff -puN drivers/block/cfq-iosched.c~cfq-iosched-update-to-time-sliced-design-prep drivers/block/cfq-iosched.c --- 25/drivers/block/cfq-iosched.c~cfq-iosched-update-to-time-sliced-design-prep 2005-06-17 22:51:15.000000000 -0700 +++ 25-akpm/drivers/block/cfq-iosched.c 2005-06-17 22:52:03.000000000 -0700 @@ -1202,16 +1202,13 @@ retry: if (new_cfqq) { cfqq = new_cfqq; new_cfqq = NULL; - } else { + } else if (gfp_mask & __GFP_WAIT) { spin_unlock_irq(cfqd->queue->queue_lock); new_cfqq = kmem_cache_alloc(cfq_pool, gfp_mask); spin_lock_irq(cfqd->queue->queue_lock); - - if (!new_cfqq && !(gfp_mask & __GFP_WAIT)) - goto out; - goto retry; - } + } else + goto out; memset(cfqq, 0, sizeof(*cfqq)); _