diff options
Diffstat (limited to 'util-linux/volume_id/get_devname.c')
-rw-r--r-- | util-linux/volume_id/get_devname.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/util-linux/volume_id/get_devname.c b/util-linux/volume_id/get_devname.c index 0686a0741..9b5283f87 100644 --- a/util-linux/volume_id/get_devname.c +++ b/util-linux/volume_id/get_devname.c | |||
@@ -260,3 +260,20 @@ char *get_devname_from_uuid(const char *spec) | |||
260 | } | 260 | } |
261 | return NULL; | 261 | return NULL; |
262 | } | 262 | } |
263 | |||
264 | int resolve_mount_spec(char **fsname) | ||
265 | { | ||
266 | char *tmp = *fsname; | ||
267 | |||
268 | if (strncmp(*fsname, "UUID=", 5) == 0) | ||
269 | tmp = get_devname_from_uuid(*fsname + 5); | ||
270 | else if (strncmp(*fsname, "LABEL=", 6) == 0) | ||
271 | tmp = get_devname_from_label(*fsname + 6); | ||
272 | |||
273 | if (tmp == *fsname) | ||
274 | return 0; /* no UUID= or LABEL= prefix found */ | ||
275 | |||
276 | if (tmp) | ||
277 | *fsname = tmp; | ||
278 | return 1; | ||
279 | } | ||