提交 dfd11c2e 编写于 作者: L Linus Torvalds
...@@ -1202,13 +1202,16 @@ __cfq_get_queue(struct cfq_data *cfqd, unsigned long key, int gfp_mask) ...@@ -1202,13 +1202,16 @@ __cfq_get_queue(struct cfq_data *cfqd, unsigned long key, int gfp_mask)
if (new_cfqq) { if (new_cfqq) {
cfqq = new_cfqq; cfqq = new_cfqq;
new_cfqq = NULL; new_cfqq = NULL;
} else if (gfp_mask & __GFP_WAIT) { } else {
spin_unlock_irq(cfqd->queue->queue_lock); spin_unlock_irq(cfqd->queue->queue_lock);
new_cfqq = kmem_cache_alloc(cfq_pool, gfp_mask); new_cfqq = kmem_cache_alloc(cfq_pool, gfp_mask);
spin_lock_irq(cfqd->queue->queue_lock); spin_lock_irq(cfqd->queue->queue_lock);
if (!new_cfqq && !(gfp_mask & __GFP_WAIT))
goto out;
goto retry; goto retry;
} else }
goto out;
memset(cfqq, 0, sizeof(*cfqq)); memset(cfqq, 0, sizeof(*cfqq));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册