cfqq->must_alloc = 0; 
cfq_clear_cfqq_must_alloc(cfqq); 
cfq_set_request(request_queue_t *q, struct request *rq, struct bio *bio,		int gfp_mask){	struct cfq_data *cfqd = q->elevator->elevator_data;	struct cfq_io_context *cic;	const int rw = rq_data_dir(rq);	struct cfq_queue *cfqq;	struct cfq_rq *crq;	unsigned long flags;	might_sleep_if(gfp_mask & __GFP_WAIT);	cic = cfq_get_io_context(cfqd, cfq_queue_pid(current, rw), gfp_mask);	spin_lock_irqsave(q->queue_lock, flags);	if (!cic)		goto queue_fail;	if (!cic->cfqq) {		cfqq = cfq_get_queue(cfqd, current->pid, gfp_mask);		if (!cfqq)			goto queue_fail;		cic->cfqq = cfqq;	} else		cfqq = cic->cfqq;	cfqq->allocated[rw]++;	cfqq->must_alloc = 0;	cfqd->rq_starved = 0;	atomic_inc(&cfqq->ref);	spin_unlock_irqrestore(q->queue_lock, flags);	crq = mempool_alloc(cfqd->crq_pool, gfp_mask);	if (crq) {		RB_CLEAR(&crq->rb_node);		crq->rb_key = 0;		crq->request = rq;		INIT_HLIST_NODE(&crq->hash);		crq->cfq_queue = cfqq;		crq->io_context = cic;		crq->in_flight = crq->accounted = 0;		crq->is_sync = (rw == READ || process_sync(current));		crq->requeued = 0;		rq->elevator_private = crq;		return 0;	}	spin_lock_irqsave(q->queue_lock, flags);	cfqq->allocated[rw]--;	if (!(cfqq->allocated[0] + cfqq->allocated[1]))		cfqq->must_alloc = 1;	cfq_put_queue(cfqq);queue_fail:	if (cic)		put_io_context(cic->ioc);	/*	 * mark us rq allocation starved. we need to kickstart the process	 * ourselves if there are no pending requests that can do it for us.	 * that would be an extremely rare OOM situation	 */	cfqd->rq_starved = 1;	kblockd_schedule_work(&cfqd->unplug_work);	spin_unlock_irqrestore(q->queue_lock, flags);	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/3b18152c327707ae6a2eeba4cfb66457143753bc/cfq-iosched.c/clean/drivers/block/cfq-iosched.c