2004-10-27 05:56:01

by Jens Axboe

[permalink] [raw]
Subject: [PATCH] cfq v2 switch bug

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 <[email protected]>

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