From: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> commit d1248436cbef1f924c04255367ff4845ccd9025e upstream. blkcg_fill_root_iostats() iterates over @block_class's devices by class_dev_iter_(init|next)(), but does not end iterating with class_dev_iter_exit(), so causes the class's subsystem refcount leakage. Fix by ending the iterating with class_dev_iter_exit(). Fixes: ef45fe470e1e ("blk-cgroup: show global disk stats in root cgroup io.stat") Reviewed-by: Michal Koutný <mkoutny@xxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx Acked-by: Tejun Heo <tj@xxxxxxxxxx> Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> Link: https://lore.kernel.org/r/20250105-class_fix-v6-2-3a2f1768d4d4@xxxxxxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- block/blk-cgroup.c | 1 + 1 file changed, 1 insertion(+) --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c @@ -851,6 +851,7 @@ static void blkcg_fill_root_iostats(void } disk_put_part(part); } + class_dev_iter_exit(&iter); } static int blkcg_print_stat(struct seq_file *sf, void *v) Patches currently in stable-queue which might be from quic_zijuhu@xxxxxxxxxxx are queue-5.10/of-reserved-memory-fix-using-wrong-number-of-cells-to-get-property-alignment.patch queue-5.10/of-fix-of_find_node_opts_by_path-handling-of-alias-path-options.patch queue-5.10/pci-endpoint-destroy-the-epc-device-in-devm_pci_epc_.patch queue-5.10/blk-cgroup-fix-class-block_class-s-subsystem-refcount-leakage.patch queue-5.10/of-correct-child-specifier-used-as-input-of-the-2nd-nexus-node.patch