aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2005-10-31 07:51:33 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-31 10:41:28 -0500
commit4fc207419d95e0e16fdc78e2f48f7c0b3640ffe5 (patch)
tree7b36e5810e549038d6cf4d1efd98aaf0541bbb11
parentdd05e42fa86e37b14f8169bbad8d334e2e8d4881 (diff)
[PATCH] Fix on-the-fly switch from cfq i/o scheduler
Don't clear ->elevator_data on exit, if we are switching queues we are overwriting the data of the new io scheduler. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/block/cfq-iosched.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/block/cfq-iosched.c b/drivers/block/cfq-iosched.c
index 5281f8e70510..ecacca9c877e 100644
--- a/drivers/block/cfq-iosched.c
+++ b/drivers/block/cfq-iosched.c
@@ -2059,10 +2059,8 @@ static void cfq_put_cfqd(struct cfq_data *cfqd)
2059 if (!atomic_dec_and_test(&cfqd->ref)) 2059 if (!atomic_dec_and_test(&cfqd->ref))
2060 return; 2060 return;
2061 2061
2062 blk_put_queue(q);
2063
2064 cfq_shutdown_timer_wq(cfqd); 2062 cfq_shutdown_timer_wq(cfqd);
2065 q->elevator->elevator_data = NULL; 2063 blk_put_queue(q);
2066 2064
2067 mempool_destroy(cfqd->crq_pool); 2065 mempool_destroy(cfqd->crq_pool);
2068 kfree(cfqd->crq_hash); 2066 kfree(cfqd->crq_hash);