The blkg lifetime is protected by the queue lifetime, so we need to put the queue _after_ we're done using the blkg. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
@@ -1759,10 +1759,10 @@ void blkcg_maybe_throttle_current(void)
if (!blkg)
goto out;
rcu_read_unlock();
- blk_put_queue(q);
blkcg_maybe_throttle_blkg(blkg, use_memdelay);
blkg_put(blkg);
+ blk_put_queue(q);
return;
out: