[PATCH 2/4] discover/devmapper: Add prefix to devmapper device names

Samuel Mendoza-Jonas sam at mendozajonas.com
Thu Jun 15 14:54:29 AEST 2017


Add a 'pb-' prefix to all device mapper devices created by Petitboot.
Beyond helping to identify Petitboot-related devices, this avoids naming
collisions if we create snapshots of LVM logical volumes which also
exist in /dev/mapper.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 discover/devmapper.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/discover/devmapper.c b/discover/devmapper.c
index c1a5492..2b28e0f 100644
--- a/discover/devmapper.c
+++ b/discover/devmapper.c
@@ -285,11 +285,11 @@ static int create_base(struct discover_device *device)
 		goto out;
 	}
 
-	name = talloc_asprintf(device, "%s-base", device->device->id);
+	name = talloc_asprintf(device, "pb-%s-base", device->device->id);
 	if (!name || run_create_task(name, &target))
 		goto out;
 
-	device->ramdisk->base = talloc_asprintf(device, "/dev/mapper/%s-base",
+	device->ramdisk->base = talloc_asprintf(device, "/dev/mapper/pb-%s-base",
 					device->device->id);
 	if (!device->ramdisk->base) {
 		pb_log("Failed to track new device /dev/mapper/%s-base\n",
@@ -325,12 +325,12 @@ static int create_origin(struct discover_device *device)
 		goto out;
 	}
 
-	name = talloc_asprintf(device, "%s-origin", device->device->id);
+	name = talloc_asprintf(device, "pb-%s-origin", device->device->id);
 	if (!name || run_create_task(name, &target))
 		goto out;
 
 	device->ramdisk->origin = talloc_asprintf(device,
-					"/dev/mapper/%s-origin",
+					"/dev/mapper/pb-%s-origin",
 					device->device->id);
 	if (!device->ramdisk->origin) {
 		pb_log("Failed to track new device /dev/mapper/%s-origin\n",
@@ -350,6 +350,7 @@ out:
 static int create_snapshot(struct discover_device *device)
 {
 	struct target target;
+	char *name = NULL;
 	int rc = -1;
 
 	if (!device->ramdisk || !device->ramdisk->base ||
@@ -367,10 +368,11 @@ static int create_snapshot(struct discover_device *device)
 		goto out;
 	}
 
-	if (run_create_task(device->device->id, &target))
+	name = talloc_asprintf(device, "pb-%s", device->device->id);
+	if (!name || run_create_task(name, &target))
 		goto out;
 
-	device->ramdisk->snapshot = talloc_asprintf(device, "/dev/mapper/%s",
+	device->ramdisk->snapshot = talloc_asprintf(device, "/dev/mapper/pb-%s",
 						device->device->id);
 	if (!device->ramdisk->snapshot) {
 		pb_log("Failed to track new device /dev/mapper/%s\n",
@@ -381,6 +383,7 @@ static int create_snapshot(struct discover_device *device)
 	rc = 0;
 
 out:
+	talloc_free(name);
 	talloc_free(target.params);
 	talloc_free(target.ttype);
 	return rc;
-- 
2.13.1



More information about the Petitboot mailing list