 if (!rl->count[READ] && !rl->count[WRITE]) { smp_mb(); if (unlikely(waitqueue_active(&rl->drain))) wake_up(&rl->drain); } 
static void freed_request(request_queue_t *q, int rw){	struct request_list *rl = &q->rq;	rl->count[rw]--;	__freed_request(q, rw);	if (unlikely(rl->starved[rw ^ 1]))		__freed_request(q, rw ^ 1);	if (!rl->count[READ] && !rl->count[WRITE]) {		smp_mb();		if (unlikely(waitqueue_active(&rl->drain)))			wake_up(&rl->drain);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/cb98fc8bb9c141009e2bda99c0db39d387e142cf/ll_rw_blk.c/buggy/drivers/block/ll_rw_blk.c