Merge tag 'libnvdimm-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[linux-2.6-microblaze.git] / drivers / md / dm.c
index 7981b72..a011d09 100644 (file)
@@ -8,6 +8,7 @@
 #include "dm-core.h"
 #include "dm-rq.h"
 #include "dm-uevent.h"
+#include "dm-ima.h"
 
 #include <linux/init.h>
 #include <linux/module.h>
@@ -261,9 +262,13 @@ static void (*_exits[])(void) = {
 static int __init dm_init(void)
 {
        const int count = ARRAY_SIZE(_inits);
-
        int r, i;
 
+#if (IS_ENABLED(CONFIG_IMA) && !IS_ENABLED(CONFIG_IMA_DISABLE_HTABLE))
+       DMWARN("CONFIG_IMA_DISABLE_HTABLE is disabled."
+              " Duplicate IMA measurements will not be recorded in the IMA log.");
+#endif
+
        for (i = 0; i < count; i++) {
                r = _inits[i]();
                if (r)
@@ -271,8 +276,7 @@ static int __init dm_init(void)
        }
 
        return 0;
-
-      bad:
+bad:
        while (i--)
                _exits[i]();
 
@@ -650,7 +654,7 @@ static int open_table_device(struct table_device *td, dev_t dev,
        }
 
        td->dm_dev.bdev = bdev;
-       td->dm_dev.dax_dev = dax_get_by_host(bdev->bd_disk->disk_name);
+       td->dm_dev.dax_dev = fs_dax_get_by_bdev(bdev);
        return 0;
 }
 
@@ -1997,6 +2001,8 @@ int dm_create(int minor, struct mapped_device **result)
        if (!md)
                return -ENXIO;
 
+       dm_ima_reset_data(md);
+
        *result = md;
        return 0;
 }