summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2018-06-29 11:02:24 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2018-07-09 15:28:35 +0200
commit2e05f6018bc3cbc8104ea53fb8a3e041ef5f899a (patch)
tree58411058a0fa9507e5a2f10c51be9cc19c086786
parent80e6097ea6bc56548304185715f04e8eaca2da48 (diff)
downloadlvm2-2e05f6018bc3cbc8104ea53fb8a3e041ef5f899a.tar.gz
activate: kvdo modprobe workaround
To support autoloading of VDO dm target driver loading of 'kvdo' kernel module is needed - ATM it's not using 'dm-vdo' name. So to support this strange name - add temporarily solution to autoload kvdo kernel module in this case.
-rw-r--r--lib/activate/activate.c6
-rw-r--r--lib/activate/activate.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/activate/activate.c b/lib/activate/activate.c
index 8f4462a86..4facb7c03 100644
--- a/lib/activate/activate.c
+++ b/lib/activate/activate.c
@@ -585,6 +585,12 @@ int module_present(struct cmd_context *cmd, const char *target_name)
}
#ifdef MODPROBE_CMD
+ if (strcmp(target_name, MODULE_NAME_VDO) == 0) {
+ argv[1] = target_name; /* ATM kvdo is without dm- prefix */
+ if ((ret = exec_cmd(cmd, argv, NULL, 0)))
+ return ret;
+ }
+
if (dm_snprintf(module, sizeof(module), "dm-%s", target_name) < 0) {
log_error("module_present module name too long: %s",
target_name);
diff --git a/lib/activate/activate.h b/lib/activate/activate.h
index 2f0b0a0e9..5d77f401d 100644
--- a/lib/activate/activate.h
+++ b/lib/activate/activate.h
@@ -271,6 +271,7 @@ void fs_unlock(void);
#define MODULE_NAME_MIRROR TARGET_NAME_MIRROR
#define MODULE_NAME_SNAPSHOT TARGET_NAME_SNAPSHOT
#define MODULE_NAME_RAID TARGET_NAME_RAID
+#define MODULE_NAME_VDO "kvdo" /* does NOT use dm- prefix */
#define MODULE_NAME_ZERO TARGET_NAME_ZERO
#endif