The 'p' delimiter is supposed to be added when the base disk name ends in a digit. This decision was based on the name given on the command line, not the canonical device name, so giving /dev/dm-0 instead of /dev/mapper/foo triggered the digit test and added the 'p'. Changed test to use the canonical name rather than the given name. Index: b/kpartx/kpartx.c =================================================================== --- a/kpartx/kpartx.c +++ b/kpartx/kpartx.c @@ -310,12 +310,6 @@ device = loopdev; } - if (delim == NULL) { - delim = malloc(DELIM_SIZE); - memset(delim, 0, DELIM_SIZE); - set_delimiter(device, delim); - } - off = find_devname_offset(device); if (!loopdev) { @@ -331,6 +325,12 @@ if (!mapname) mapname = device + off; + if (delim == NULL) { + delim = malloc(DELIM_SIZE); + memset(delim, 0, DELIM_SIZE); + set_delimiter(mapname, delim); + } + fd = open(device, O_RDONLY); if (fd == -1) {
Attachment:
signature.asc
Description: OpenPGP digital signature
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel