X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Ffindfs.c;h=061ab0a4f98ab3a8d9d4678b3b3d947b3a331ce5;hp=0520f181fc66f0bc6e66bfac270d5e06329bed81;hb=8022d46e5e2d9c3ab664ace6c9f185976e34dc20;hpb=65e9ac4595fbace8f301030469932be518456246 diff --git a/daemon/findfs.c b/daemon/findfs.c index 0520f18..061ab0a 100644 --- a/daemon/findfs.c +++ b/daemon/findfs.c @@ -56,6 +56,22 @@ findfs (const char *tag, const char *label_or_uuid) if (len > 0 && out[len-1] == '\n') out[len-1] = '\0'; + if (STRPREFIX (out, "/dev/mapper/") || STRPREFIX (out, "/dev/dm-")) { + char *canonical; + r = lv_canonical (out, &canonical); + if (r == -1) { + free (out); + return NULL; + } + if (r == 1) { + free (out); + out = canonical; + } + /* Ignore the case where r == 0. /dev/mapper does not correspond + * to an LV, so the best we can do is just return it as-is. + */ + } + return out; /* caller frees */ }