X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fblkid.c;h=2885a8f30c3f0c607ed7b3536b6ec01d5c487123;hb=995674a44aa00b3c68d47d367a8e92b610ffc700;hp=1ddc8cdf353553853648392b8b5b17ea496c9bb9;hpb=85c71f8fff3e80f549342bf995b686ba7303c2b4;p=libguestfs.git diff --git a/daemon/blkid.c b/daemon/blkid.c index 1ddc8cd..2885a8f 100644 --- a/daemon/blkid.c +++ b/daemon/blkid.c @@ -33,6 +33,14 @@ get_blkid_tag (const char *device, const char *tag) char *out, *err; int r; + /* Kill the cache file, forcing blkid to reread values from the + * original filesystems. In blkid there is a '-p' option which is + * supposed to do this, but (a) it doesn't work and (b) that option + * is not supported in RHEL 5. + */ + unlink ("/etc/blkid/blkid.tab"); /* Red Hat, Fedora */ + unlink ("/etc/blkid.tab"); /* Debian */ + r = command (&out, &err, "blkid", "-o", "value", "-s", tag, device, NULL); if (r == -1) { @@ -57,3 +65,15 @@ do_vfs_type (const char *device) { return get_blkid_tag (device, "TYPE"); } + +char * +do_vfs_label (const char *device) +{ + return get_blkid_tag (device, "LABEL"); +} + +char * +do_vfs_uuid (const char *device) +{ + return get_blkid_tag (device, "UUID"); +}