dax: simplify the dax_device <-> gendisk association
[sfrench/cifs-2.6.git] / drivers / md / dm.c
index b93fcc91176e5e1596fdcf6a2486277cfbb5ae9e..a8c650276b32183c51e6374cff15ebbb06636211 100644 (file)
@@ -1683,6 +1683,7 @@ static void cleanup_mapped_device(struct mapped_device *md)
        bioset_exit(&md->io_bs);
 
        if (md->dax_dev) {
+               dax_remove_host(md->disk);
                kill_dax(md->dax_dev);
                put_dax(md->dax_dev);
                md->dax_dev = NULL;
@@ -1784,12 +1785,13 @@ static struct mapped_device *alloc_dev(int minor)
        sprintf(md->disk->disk_name, "dm-%d", minor);
 
        if (IS_ENABLED(CONFIG_FS_DAX)) {
-               md->dax_dev = alloc_dax(md, md->disk->disk_name,
-                                       &dm_dax_ops, 0);
+               md->dax_dev = alloc_dax(md, &dm_dax_ops, 0);
                if (IS_ERR(md->dax_dev)) {
                        md->dax_dev = NULL;
                        goto bad;
                }
+               if (dax_add_host(md->dax_dev, md->disk))
+                       goto bad;
        }
 
        format_dev_t(md->name, MKDEV(_major, minor));