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