From: Jinlong Chen Date: Thu, 20 Oct 2022 06:48:18 +0000 (+0200) Subject: block: check for an unchanged elevator earlier in __elevator_change X-Git-Tag: microblaze-v6.6~1573^2~158 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=b54c2ad9b77de846e42104ecf94eb8329d2f03a3;p=linux-2.6-microblaze.git block: check for an unchanged elevator earlier in __elevator_change No need to find the actual elevator_type struct for this comparism, the name is all that is needed. Signed-off-by: Jinlong Chen [hch: split from a larger patch] Signed-off-by: Christoph Hellwig Link: https://lore.kernel.org/r/20221020064819.1469928-4-hch@lst.de Signed-off-by: Jens Axboe --- diff --git a/block/elevator.c b/block/elevator.c index 5b8fb8745e9a..61d5655a3819 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -751,16 +751,13 @@ static int elevator_change(struct request_queue *q, const char *elevator_name) return elevator_switch(q, NULL); } + if (q->elevator && elevator_match(q->elevator->type, elevator_name, 0)) + return 0; + e = elevator_get(q, elevator_name, true); if (!e) return -EINVAL; - if (q->elevator && - elevator_match(q->elevator->type, elevator_name, 0)) { - elevator_put(e); - return 0; - } - return elevator_switch(q, e); }