/* return expired entry, or NULL to just start from scratch in rbtree  */
static struct request* cfq_check_fifo(struct cfq_queue *cfqq)
/* return expired entry, or NULL to just start from scratch in rbtree  */
static struct request* cfq_check_fifo(struct cfq_queue *cfqq)
{
	struct request *rq = NULL;
	if (cfq_cfqq_fifo_expire(cfqq))
		return NULL;
	cfq_mark_cfqq_fifo_expire(cfqq);
	if (list_empty(&cfqq->fifo))
		return NULL;
	rq = rq_entry_fifo(cfqq->fifo.next);
	if (time_before(jiffies, rq_fifo_time(rq)))
		rq = NULL;
	cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq);
	return rq;
}