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 <jo...@toxicpanda.com>
---
 block/blk-cgroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 1942357d7165..694595b29b8f 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -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:
        rcu_read_unlock();
-- 
2.14.3

Reply via email to