From 35797132b311b3b7d4add48393b0a03f3566cbc1 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sat, 10 Sep 2005 14:17:10 +0200 Subject: [PATCH] [PATCH] cfq-iosched: reverse bad reference count fix The reference count fix merged isn't fully bug free. It doesn't leak now, but instead it crashes due to looking at freed memory. So for now, lets reverse the change and I'll fix it for real next week. Signed-off-by: Jens Axboe Signed-off-by: Linus Torvalds --- drivers/block/cfq-iosched.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/block/cfq-iosched.c b/drivers/block/cfq-iosched.c index 30c0903c7cdd..cd056e7e64ec 100644 --- a/drivers/block/cfq-iosched.c +++ b/drivers/block/cfq-iosched.c @@ -2260,6 +2260,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; @@ -2316,6 +2318,7 @@ static int cfq_init_queue(request_queue_t *q, elevator_t *e) e->elevator_data = cfqd; cfqd->queue = q; + atomic_inc(&q->refcnt); cfqd->max_queued = q->nr_requests / 4; q->nr_batching = cfq_queued; -- 2.39.2