diff options
Diffstat (limited to 'drivers/block/cfq-iosched.c')
-rw-r--r-- | drivers/block/cfq-iosched.c | 3 |
1 files changed, 3 insertions, 0 deletions
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) | |||
2260 | if (!atomic_dec_and_test(&cfqd->ref)) | 2260 | if (!atomic_dec_and_test(&cfqd->ref)) |
2261 | return; | 2261 | return; |
2262 | 2262 | ||
2263 | blk_put_queue(q); | ||
2264 | |||
2263 | cfq_shutdown_timer_wq(cfqd); | 2265 | cfq_shutdown_timer_wq(cfqd); |
2264 | q->elevator->elevator_data = NULL; | 2266 | q->elevator->elevator_data = NULL; |
2265 | 2267 | ||
@@ -2316,6 +2318,7 @@ static int cfq_init_queue(request_queue_t *q, elevator_t *e) | |||
2316 | e->elevator_data = cfqd; | 2318 | e->elevator_data = cfqd; |
2317 | 2319 | ||
2318 | cfqd->queue = q; | 2320 | cfqd->queue = q; |
2321 | atomic_inc(&q->refcnt); | ||
2319 | 2322 | ||
2320 | cfqd->max_queued = q->nr_requests / 4; | 2323 | cfqd->max_queued = q->nr_requests / 4; |
2321 | q->nr_batching = cfq_queued; | 2324 | q->nr_batching = cfq_queued; |