Merge patch series "riscv: Introduce KASLR"
[platform/kernel/linux-rpi.git] / block / blk-iolatency.c
index fd5fec9..c1a6aba 100644 (file)
@@ -824,29 +824,6 @@ static void iolatency_clear_scaling(struct blkcg_gq *blkg)
        }
 }
 
-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)
 {
@@ -861,7 +838,17 @@ static ssize_t iolatency_set_limit(struct kernfs_open_file *of, char *buf,
 
        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;