mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-16 02:13:40 -06:00
Fix enumeration of partitions in disks with a trailing digit in path
Disks with a trailing digit in their path (eg /dev/loop0 or /dev/dm0) have an extra 'p' appended before the partition number (eg, to form /dev/loop0p1 not /dev/loop01). Fix the partition lookup to append this extra 'p' when required * src/storage/parthelper.c: Add a 'p' before partition number if required
This commit is contained in:
parent
582c75ec45
commit
bc8d9f2077
@ -36,6 +36,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "c-ctype.h"
|
||||||
|
|
||||||
/* we don't need to include the full internal.h just for this */
|
/* we don't need to include the full internal.h just for this */
|
||||||
#define STREQ(a,b) (strcmp(a,b) == 0)
|
#define STREQ(a,b) (strcmp(a,b) == 0)
|
||||||
|
|
||||||
@ -56,6 +58,8 @@ int main(int argc, char **argv)
|
|||||||
PedDisk *disk;
|
PedDisk *disk;
|
||||||
PedPartition *part;
|
PedPartition *part;
|
||||||
int cmd = DISK_LAYOUT;
|
int cmd = DISK_LAYOUT;
|
||||||
|
const char *path;
|
||||||
|
const char *partsep;
|
||||||
|
|
||||||
if (argc == 3 && STREQ(argv[2], "-g")) {
|
if (argc == 3 && STREQ(argv[2], "-g")) {
|
||||||
cmd = DISK_GEOMETRY;
|
cmd = DISK_GEOMETRY;
|
||||||
@ -64,8 +68,11 @@ int main(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((dev = ped_device_get(argv[1])) == NULL) {
|
path = argv[1];
|
||||||
fprintf(stderr, "unable to access device %s\n", argv[1]);
|
partsep = c_isdigit(path[strlen(path)-1]) ? "p" : "";
|
||||||
|
|
||||||
|
if ((dev = ped_device_get(path)) == NULL) {
|
||||||
|
fprintf(stderr, "unable to access device %s\n", path);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,8 +124,8 @@ int main(int argc, char **argv)
|
|||||||
* in bytes, not the last sector number
|
* in bytes, not the last sector number
|
||||||
*/
|
*/
|
||||||
if (part->num != -1) {
|
if (part->num != -1) {
|
||||||
printf("%s%d%c%s%c%s%c%llu%c%llu%c%llu%c",
|
printf("%s%s%d%c%s%c%s%c%llu%c%llu%c%llu%c",
|
||||||
part->geom.dev->path,
|
path, partsep,
|
||||||
part->num, '\0',
|
part->num, '\0',
|
||||||
type, '\0',
|
type, '\0',
|
||||||
content, '\0',
|
content, '\0',
|
||||||
|
Loading…
Reference in New Issue
Block a user