[PATCH] cfq v2 switch bug

From: Jens Axboe
Date: Wed Oct 27 2004 - 00:59:39 EST


Hi,

Fix online switching issue with cfq v2. It does deferred clearing of
e->elevator_data, which screws up the current io scheduler. It does not
have to, so just remove it.

Signed-off-by: Jens Axboe <axboe@xxxxxxx>

--- /opt/kernel/linux-2.6.9-mm1/drivers/block/cfq-iosched.c 2004-10-25 17:17:19.000000000 +0200
+++ linux-2.6.9-mm1/drivers/block/cfq-iosched.c 2004-10-26 15:07:51.146772400 +0200
@@ -1482,7 +1482,6 @@
static void cfq_put_cfqd(struct cfq_data *cfqd)
{
request_queue_t *q = cfqd->queue;
- elevator_t *e = q->elevator;
struct cfq_queue *cfqq;

if (!atomic_dec_and_test(&cfqd->ref))
@@ -1500,7 +1499,6 @@

blk_put_queue(q);

- e->elevator_data = NULL;
mempool_destroy(cfqd->crq_pool);
kfree(cfqd->crq_hash);
kfree(cfqd->cfq_hash);

--
Jens Axboe

-
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/