From f58168ffb6facb095ec3c618513ed49d730d7488 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 29 Sep 2010 23:42:43 +0200 Subject: libmount: add mount(2) and /sbin/mount. support Signed-off-by: Karel Zak --- shlibs/mount/src/cache.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'shlibs/mount/src/cache.c') diff --git a/shlibs/mount/src/cache.c b/shlibs/mount/src/cache.c index fe05febaa..c8fd8e77e 100644 --- a/shlibs/mount/src/cache.c +++ b/shlibs/mount/src/cache.c @@ -402,16 +402,18 @@ char *mnt_cache_find_tag_value(mnt_cache *cache, /** * mnt_get_fstype: * @devname: device name + * @ambi: returns TRUE if probing result is ambivalent (optional argument) * @cache: cache for results or NULL * * Returns: fileststem type or NULL in case of error. The result has to be * deallocated by free() if @cache is NULL. */ -char *mnt_get_fstype(const char *devname, mnt_cache *cache) +char *mnt_get_fstype(const char *devname, int *ambi, mnt_cache *cache) { blkid_probe pr; const char *data; char *type = NULL; + int rc; if (cache) return mnt_cache_find_tag_value(cache, devname, "TYPE"); @@ -423,10 +425,14 @@ char *mnt_get_fstype(const char *devname, mnt_cache *cache) blkid_probe_set_superblocks_flags(pr, BLKID_SUBLKS_TYPE); - if (!blkid_do_safeprobe(pr) && - !blkid_probe_lookup_value(pr, "TYPE", &data, NULL)) + rc = blkid_do_safeprobe(pr); + + if (!rc && !blkid_probe_lookup_value(pr, "TYPE", &data, NULL)) type = strdup(data); + if (ambi) + *ambi = rc == -2 ? TRUE : FALSE; + blkid_free_probe(pr); return type; } -- cgit v1.2.3-55-g7522