if (sync) { struct cfq_io_context *cic = crq->io_context; 
/* * we never wait for an async request and we don't allow preemption * of an async request. so just return early */ if (!cfq_crq_is_sync(crq)) return; 
cfq_crq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,		 struct cfq_rq *crq){	const int sync = cfq_crq_is_sync(crq);	cfqq->next_crq = cfq_choose_req(cfqd, cfqq->next_crq, crq);	if (sync) {		struct cfq_io_context *cic = crq->io_context;		cfq_update_io_thinktime(cfqd, cic);		cfq_update_idle_window(cfqd, cfqq, cic);		cic->last_queue = jiffies;	}	if (cfqq == cfqd->active_queue) {		/*		 * if we are waiting for a request for this queue, let it rip		 * immediately and flag that we must not expire this queue		 * just now		 */		if (cfq_cfqq_wait_request(cfqq)) {			cfq_mark_cfqq_must_dispatch(cfqq);			del_timer(&cfqd->idle_slice_timer);			cfq_start_queueing(cfqd, cfqq);		}	} else if (cfq_should_preempt(cfqd, cfqq, crq)) {		/*		 * not the active queue - expire current slice if it is		 * idle and has expired it's mean thinktime or this new queue		 * has some old slice time left and is of higher priority		 */		cfq_preempt_queue(cfqd, cfqq);		cfq_mark_cfqq_must_dispatch(cfqq);		cfq_start_queueing(cfqd, cfqq);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9c2c38a122cc23d6a09b8004d60a33913683eedf/cfq-iosched.c/clean/drivers/block/cfq-iosched.c