提交 dfd11c2e 编写于 作者: L Linus Torvalds
...@@ -1202,14 +1202,17 @@ __cfq_get_queue(struct cfq_data *cfqd, unsigned long key, int gfp_mask) ...@@ -1202,14 +1202,17 @@ __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);
goto retry;
} else if (!new_cfqq && !(gfp_mask & __GFP_WAIT))
goto out; goto out;
goto retry;
}
memset(cfqq, 0, sizeof(*cfqq)); memset(cfqq, 0, sizeof(*cfqq));
INIT_HLIST_NODE(&cfqq->cfq_hash); INIT_HLIST_NODE(&cfqq->cfq_hash);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册