Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'block-6.16-20250725' of git://git.kernel.dk/linux

Pull block fix from Jens Axboe:
"Just a single fix for regression in this release, where a module
reference could be leaked"

* tag 'block-6.16-20250725' of git://git.kernel.dk/linux:
block: fix module reference leak in mq-deadline I/O scheduler

+13 -6
+13 -6
block/elevator.c
··· 719 719 .name = "mq-deadline", 720 720 .no_uevent = true, 721 721 }; 722 - int err = 0; 722 + int err; 723 + struct elevator_type *e; 723 724 724 725 /* now we allow to switch elevator */ 725 726 blk_queue_flag_clear(QUEUE_FLAG_NO_ELV_SWITCH, q); ··· 733 732 * have multiple queues or mq-deadline is not available, default 734 733 * to "none". 735 734 */ 736 - if (elevator_find_get(ctx.name) && (q->nr_hw_queues == 1 || 737 - blk_mq_is_shared_tags(q->tag_set->flags))) 735 + e = elevator_find_get(ctx.name); 736 + if (!e) 737 + return; 738 + 739 + if ((q->nr_hw_queues == 1 || 740 + blk_mq_is_shared_tags(q->tag_set->flags))) { 738 741 err = elevator_change(q, &ctx); 739 - if (err < 0) 740 - pr_warn("\"%s\" elevator initialization, failed %d, " 741 - "falling back to \"none\"\n", ctx.name, err); 742 + if (err < 0) 743 + pr_warn("\"%s\" elevator initialization, failed %d, falling back to \"none\"\n", 744 + ctx.name, err); 745 + } 746 + elevator_put(e); 742 747 } 743 748 744 749 void elevator_set_none(struct request_queue *q)