From: Hannes Reinecke <hare@xxxxxxx> When creating nvme multipath devices we should populate the 'slaves' and 'holders' directorys properly to aid userspace topology detection. Signed-off-by: Hannes Reinecke <hare@xxxxxxxx> [hch: split from a larger patch] Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- block/genhd.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/block/genhd.c b/block/genhd.c index 835e907e6e01..3de1671631bf 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -585,14 +585,14 @@ static void register_disk(struct device *parent, struct gendisk *disk) */ pm_runtime_set_memalloc_noio(ddev, true); + disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj); + disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj); + if (disk->flags & GENHD_FL_HIDDEN) { dev_set_uevent_suppress(ddev, 0); return; } - disk->part0.holder_dir = kobject_create_and_add("holders", &ddev->kobj); - disk->slave_dir = kobject_create_and_add("slaves", &ddev->kobj); - /* No minors to use for partitions */ if (!disk_part_scan_enabled(disk)) goto exit; @@ -728,11 +728,11 @@ void del_gendisk(struct gendisk *disk) WARN_ON(1); } - if (!(disk->flags & GENHD_FL_HIDDEN)) { + if (!(disk->flags & GENHD_FL_HIDDEN)) blk_unregister_region(disk_devt(disk), disk->minors); - kobject_put(disk->part0.holder_dir); - kobject_put(disk->slave_dir); - } + + kobject_put(disk->part0.holder_dir); + kobject_put(disk->slave_dir); part_stat_set_all(&disk->part0, 0); disk->part0.stamp = 0; -- 2.14.2