This function is going to be used on other places, so
instead of copying code we can just call the function.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_domain.c | 59 ++++++++++++++++++++++++++++++--------------------
1 file changed, 36 insertions(+), 23 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 212717c80..286d60761 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -7572,6 +7572,41 @@ qemuDomainGetHostdevPath(virDomainDefPtr def,
}
+static char *
+qemuDomainGetPreservedMountPath(virQEMUDriverConfigPtr cfg,
+ virDomainObjPtr vm,
+ const char *mount)
+{
+ char *path = NULL;
+ char *tmp;
+ const char *suffix = mount + strlen(DEVPREFIX);
+ size_t off;
+
+ if (STREQ(mount, "/dev"))
+ suffix = "dev";
+
+ if (virAsprintf(&path, "%s/%s.%s",
+ cfg->stateDir, vm->def->name, suffix) < 0)
+ return NULL;
+
+ /* Now consider that @mount is "/dev/blah/blah2".
+ * @suffix then points to "blah/blah2". However, caller
+ * expects all the @paths to be the same depth. The
+ * caller doesn't always do `mkdir -p` but sometimes bare
+ * `touch`. Therefore fix all the suffixes. */
+ off = strlen(path) - strlen(suffix);
+
+ tmp = path + off;
+ while (*tmp) {
+ if (*tmp == '/')
+ *tmp = '.';
+ tmp++;
+ }
+
+ return path;
+}
+
+
/**
* qemuDomainGetPreservedMounts:
*
@@ -7628,30 +7663,8 @@ qemuDomainGetPreservedMounts(virQEMUDriverConfigPtr cfg,
goto error;
for (i = 0; i < nmounts; i++) {
- char *tmp;
- const char *suffix = mounts[i] + strlen(DEVPREFIX);
- size_t off;
-
- if (STREQ(mounts[i], "/dev"))
- suffix = "dev";
-
- if (virAsprintf(&paths[i], "%s/%s.%s",
- cfg->stateDir, vm->def->name, suffix) < 0)
+ if (!(paths[i] = qemuDomainGetPreservedMountPath(cfg, vm, mounts[i])))
goto error;
-
- /* Now consider that mounts[i] is "/dev/blah/blah2".
- * @suffix then points to "blah/blah2". However, caller
- * expects all the @paths to be the same depth. The
- * caller doesn't always do `mkdir -p` but sometimes bare
- * `touch`. Therefore fix all the suffixes. */
- off = strlen(paths[i]) - strlen(suffix);
-
- tmp = paths[i] + off;
- while (*tmp) {
- if (*tmp == '/')
- *tmp = '.';
- tmp++;
- }
}
if (devPath)
--
2.13.0