From a691d4b370e58e5c83349f36af88b9cea36c0d15 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 4 Sep 2014 10:59:34 +0200 Subject: [PATCH] installer: Add p suffix to path for mmcblk0 devices, etc. --- src/installer/hw.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/installer/hw.c b/src/installer/hw.c index 3ec4d75e0e..6d3389a6bb 100644 --- a/src/installer/hw.c +++ b/src/installer/hw.c @@ -357,11 +357,26 @@ static unsigned long long hw_boot_size(struct hw_destination* dest) { return MB2BYTES(64); } +static int hw_device_has_p_suffix(const struct hw_destination* dest) { + // All RAID devices have the p suffix. + if (dest->is_raid) + return 1; + + // Devices with a number at the end have the p suffix, too. + // e.g. mmcblk0, cciss0 + unsigned int last_char = strlen(dest->path); + if ((dest->path[last_char] >= '0') && (dest->path[last_char] <= '9')) + return 1; + + return 0; +} + static int hw_calculate_partition_table(struct hw_destination* dest) { char path[DEV_SIZE]; int part_idx = 1; - snprintf(path, sizeof(path), "%s%s", dest->path, (dest->is_raid) ? "p" : ""); + snprintf(path, sizeof(path), "%s%s", dest->path, + hw_device_has_p_suffix(dest) ? "p" : ""); dest->part_boot_idx = 0; // Determine the size of the target block device -- 2.39.2