Re: block: eliminate ELEVATOR_INSERT_REQUEUE

From: Tejun Heo
Date: Wed Mar 30 2011 - 11:30:42 EST


On Wed, Mar 30, 2011 at 11:22:48AM -0400, Vivek Goyal wrote:
> So wee need this as stable fix because FLUSH request can get ahead of
> REQUEUED requests and it can break some drivers?

Yes, I think so. All we need is just replacing elv_insert() calls in
blk-flush.c with list_add_tail(). Something like the following. I'll
test it and send a proper patch later. Thanks.

diff --git a/block/blk-flush.c b/block/blk-flush.c
index b27d020..51a45a5 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -132,7 +132,7 @@ static struct request *queue_next_fseq(struct request_queue *q)
BUG();
}

- elv_insert(q, rq, ELEVATOR_INSERT_REQUEUE);
+ list_add_tail(&rq->queuelist, &q->queue_head);
return rq;
}


--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/