Commit bab5f4f1 authored by Jens Axboe's avatar Jens Axboe Committed by Linus Torvalds

[PATCH] cfq v2 switch bug

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: default avatarJens Axboe <axboe@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 22418360
...@@ -1482,7 +1482,6 @@ static int cfq_set_request(request_queue_t *q, struct request *rq, int gfp_mask) ...@@ -1482,7 +1482,6 @@ static int cfq_set_request(request_queue_t *q, struct request *rq, int gfp_mask)
static void cfq_put_cfqd(struct cfq_data *cfqd) static void cfq_put_cfqd(struct cfq_data *cfqd)
{ {
request_queue_t *q = cfqd->queue; request_queue_t *q = cfqd->queue;
elevator_t *e = q->elevator;
struct cfq_queue *cfqq; struct cfq_queue *cfqq;
if (!atomic_dec_and_test(&cfqd->ref)) if (!atomic_dec_and_test(&cfqd->ref))
...@@ -1500,7 +1499,6 @@ static void cfq_put_cfqd(struct cfq_data *cfqd) ...@@ -1500,7 +1499,6 @@ static void cfq_put_cfqd(struct cfq_data *cfqd)
blk_put_queue(q); blk_put_queue(q);
e->elevator_data = NULL;
mempool_destroy(cfqd->crq_pool); mempool_destroy(cfqd->crq_pool);
kfree(cfqd->crq_hash); kfree(cfqd->crq_hash);
kfree(cfqd->cfq_hash); kfree(cfqd->cfq_hash);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment