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; |
