git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dax: simplify the dax_device <-> gendisk association
[sfrench/cifs-2.6.git]
/
drivers
/
md
/
dm.c
diff --git
a/drivers/md/dm.c
b/drivers/md/dm.c
index b93fcc91176e5e1596fdcf6a2486277cfbb5ae9e..a8c650276b32183c51e6374cff15ebbb06636211 100644
(file)
--- a/
drivers/md/dm.c
+++ b/
drivers/md/dm.c
@@
-1683,6
+1683,7
@@
static void cleanup_mapped_device(struct mapped_device *md)
bioset_exit(&md->io_bs);
if (md->dax_dev) {
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;
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)) {
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 (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));
}
format_dev_t(md->name, MKDEV(_major, minor));