Commit 6601d443 authored by Li Lingfeng's avatar Li Lingfeng
Browse files

dm: add disk before alloc dax

Offering: HULK
hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I78SWJ


CVE: NA

-------------------------------

In dm_create(), alloc_dev() may trigger panic if alloc_dax() fail since
del_gendisk() will be called with add_disk() wasn't called before.

Call add_disk() before alloc_dax() to avoid it.

Signed-off-by: default avatarLi Lingfeng <lilingfeng3@huawei.com>
Reviewed-by: default avatarHou Tao <houtao1@huawei.com>
parent 6bc20a2c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1883,6 +1883,8 @@ static struct mapped_device *alloc_dev(int minor)
	md->disk->private_data = md;
	sprintf(md->disk->disk_name, "dm-%d", minor);

	add_disk_no_queue_reg(md->disk);

	if (IS_ENABLED(CONFIG_DAX_DRIVER)) {
		md->dax_dev = alloc_dax(md, md->disk->disk_name,
					&dm_dax_ops, 0);
@@ -1892,7 +1894,6 @@ static struct mapped_device *alloc_dev(int minor)
		}
	}

	add_disk_no_queue_reg(md->disk);
	format_dev_t(md->name, MKDEV(_major, minor));

	md->wq = alloc_workqueue("kdmflush", WQ_MEM_RECLAIM, 0);