summaryrefslogtreecommitdiff
path: root/drivers/block/cfq-iosched.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-11-05 23:44:02 +0300
committerJeff Garzik <jgarzik@pobox.com>2005-11-05 23:44:02 +0300
commit8cedcfd43a0b00741fff43d6a4c1a8b7748db3b0 (patch)
tree41758e4da78f94a20813554ef9f5ed9b323a4f8c /drivers/block/cfq-iosched.c
parentcd8200e6d4f9f05e6ea48f7c000be890337396ac (diff)
parent70d9d825e0a5a78ec1dacaaaf5c72ff5b0206fab (diff)
downloadlinux-8cedcfd43a0b00741fff43d6a4c1a8b7748db3b0.tar.xz
Merge branch 'master'
Diffstat (limited to 'drivers/block/cfq-iosched.c')
-rw-r--r--drivers/block/cfq-iosched.c26
1 files changed, 2 insertions, 24 deletions
diff --git a/drivers/block/cfq-iosched.c b/drivers/block/cfq-iosched.c
index 94690e4d41e0..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)
if (!atomic_dec_and_test(&cfqd->ref))
return;
- blk_put_queue(q);
-
cfq_shutdown_timer_wq(cfqd);
- q->elevator->elevator_data = NULL;
+ blk_put_queue(q);
mempool_destroy(cfqd->crq_pool);
kfree(cfqd->crq_hash);
@@ -2418,28 +2416,8 @@ static int __init cfq_init(void)
static void __exit cfq_exit(void)
{
- struct task_struct *g, *p;
- unsigned long flags;
-
- read_lock_irqsave(&tasklist_lock, flags);
-
- /*
- * iterate each process in the system, removing our io_context
- */
- do_each_thread(g, p) {
- struct io_context *ioc = p->io_context;
-
- if (ioc && ioc->cic) {
- ioc->cic->exit(ioc->cic);
- cfq_free_io_context(ioc->cic);
- ioc->cic = NULL;
- }
- } while_each_thread(g, p);
-
- read_unlock_irqrestore(&tasklist_lock, flags);
-
- cfq_slab_kill();
elv_unregister(&iosched_cfq);
+ cfq_slab_kill();
}
module_init(cfq_init);