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

dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()

Otherwise the request-based DM blk-mq request_queue will be put into
service without being properly exported via sysfs.

Cc: stable@vger.kernel.org
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>

authored by

Bart Van Assche and committed by
Mike Snitzer
23a60124 c1d7ecf7

+5 -1
+5 -1
drivers/md/dm-rq.c
··· 809 809 dm_init_md_queue(md); 810 810 811 811 /* backfill 'mq' sysfs registration normally done in blk_register_queue */ 812 - blk_mq_register_dev(disk_to_dev(md->disk), q); 812 + err = blk_mq_register_dev(disk_to_dev(md->disk), q); 813 + if (err) 814 + goto out_cleanup_queue; 813 815 814 816 return 0; 815 817 818 + out_cleanup_queue: 819 + blk_cleanup_queue(q); 816 820 out_tag_set: 817 821 blk_mq_free_tag_set(md->tag_set); 818 822 out_kfree_tag_set: