From 9d0d6a80618eca3c985f2307971455d6c8ae9fe7 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Sat, 2 Aug 2025 04:36:06 +0200 Subject: block: Clean up elevator_set_default In case of a multi-queue device, the code pointlessly loaded the default elevator just to drop it again. --- block/elevator.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) --- a/block/elevator.c +++ b/block/elevator.c @@ -761,17 +761,18 @@ void elevator_set_default(struct request * have multiple queues or mq-deadline is not available, default * to "none". */ + if (q->nr_hw_queues != 1 && !blk_mq_is_shared_tags(q->tag_set->flags)) + return; + e = elevator_find_get(ctx.name); if (!e) return; - if ((q->nr_hw_queues == 1 || - blk_mq_is_shared_tags(q->tag_set->flags))) { - err = elevator_change(q, &ctx); - if (err < 0) - pr_warn("\"%s\" elevator initialization, failed %d, falling back to \"none\"\n", - ctx.name, err); - } + err = elevator_change(q, &ctx); + if (err < 0) + pr_warn("\"%s\" elevator initialization, failed %d, falling back to \"none\"\n", + ctx.name, err); + elevator_put(e); }