}
 }
 
-static int blk_iolatency_try_init(struct blkg_conf_ctx *ctx)
-{
-       static DEFINE_MUTEX(init_mutex);
-       int ret;
-
-       ret = blkg_conf_open_bdev(ctx);
-       if (ret)
-               return ret;
-
-       /*
-        * blk_iolatency_init() may fail after rq_qos_add() succeeds which can
-        * confuse iolat_rq_qos() test. Make the test and init atomic.
-        */
-       mutex_lock(&init_mutex);
-
-       if (!iolat_rq_qos(ctx->bdev->bd_queue))
-               ret = blk_iolatency_init(ctx->bdev->bd_disk);
-
-       mutex_unlock(&init_mutex);
-
-       return ret;
-}
-
 static ssize_t iolatency_set_limit(struct kernfs_open_file *of, char *buf,
                             size_t nbytes, loff_t off)
 {
 
        blkg_conf_init(&ctx, buf);
 
-       ret = blk_iolatency_try_init(&ctx);
+       ret = blkg_conf_open_bdev(&ctx);
+       if (ret)
+               goto out;
+
+       /*
+        * blk_iolatency_init() may fail after rq_qos_add() succeeds which can
+        * confuse iolat_rq_qos() test. Make the test and init atomic.
+        */
+       lockdep_assert_held(ctx.bdev->bd_queue->rq_qos_mutex);
+       if (!iolat_rq_qos(ctx.bdev->bd_queue))
+               ret = blk_iolatency_init(ctx.bdev->bd_disk);
        if (ret)
                goto out;