From: Jacek Kryszyn Date: Tue, 10 Sep 2024 05:00:04 +0000 (+0200) Subject: blkid-print: handle /dev/vdX devices X-Git-Tag: accepted/tizen/unified/20241001.004059^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Faccepted%2Ftizen_unified_toolchain;p=platform%2Fcore%2Fsystem%2Fupgrade.git blkid-print: handle /dev/vdX devices In QEMU virtual disks are named /dev/vdX. blkid-print would put "p" letter between "vdX" and the number of a device. This change fixes the issue. Change-Id: I523ce5837f3c2ca727ad41875a51cde3fe872fa4 --- diff --git a/src/blkid-print/blkid-print.c b/src/blkid-print/blkid-print.c index 05d5f5d..5f0e394 100644 --- a/src/blkid-print/blkid-print.c +++ b/src/blkid-print/blkid-print.c @@ -22,6 +22,8 @@ #include #include "blkid-api.h" +#define ARRAY_LEN(arr) sizeof(arr)/sizeof(arr[0]) + void usage(const char* msg) { if (msg) { fprintf(stderr, "%s\n", msg); @@ -119,9 +121,10 @@ int main(int argc, char *argv[]) { } const char *part_label = blkid_partition_get_name(part); char part_path[PATH_MAX]; - // /dev/sda1 vs /dev/mmcblk0p1 /dev/nvme0n1p1 + // /dev/sda1 /dev/vda1 vs /dev/mmcblk0p1 /dev/nvme0n1p1 // no_separator vs "p" separator - if (strncmp("/dev/sd", device_name, strlen("/dev/sd")) == 0) + if (strncmp("/dev/sd", device_name, ARRAY_LEN("/dev/sd") - 1) == 0 || + strncmp("/dev/vd", device_name, ARRAY_LEN("/dev/vd") - 1) == 0) snprintf(part_path, PATH_MAX, "%s%d", device_name, part_nr); else snprintf(part_path, PATH_MAX, "%sp%d", device_name, part_nr);