walters / rpms / nfs-utils

Forked from rpms/nfs-utils 6 years ago
Clone
f5b3ef3
commit 3a340251597a5b0c579c31d8caf9aa3b53a77016
f5b3ef3
Author: David Woodhouse <David.Woodhouse@intel.com>
f5b3ef3
Date:   Thu Aug 28 11:05:17 2008 -0400
f5b3ef3
f5b3ef3
    Use fsid from statfs for UUID if blkid can't cope (or not used)
f5b3ef3
    
f5b3ef3
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
f5b3ef3
    Signed-off-by: Steve Dickson <steved@redhat.com>
f5b3ef3
f5b3ef3
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c
f5b3ef3
index 23e2344..fa15472 100644
f5b3ef3
--- a/utils/mountd/cache.c
f5b3ef3
+++ b/utils/mountd/cache.c
f5b3ef3
@@ -215,8 +215,17 @@ int get_uuid(char *path, char *uuid, int uuidlen, char *u)
f5b3ef3
 
f5b3ef3
 	if (path) {
f5b3ef3
 		val = get_uuid_blkdev(path);
f5b3ef3
-		if (!val)
f5b3ef3
-			return 0;
f5b3ef3
+		if (!val) {
f5b3ef3
+			struct statfs64 st;
f5b3ef3
+
f5b3ef3
+			if (statfs64(path, &st))
f5b3ef3
+				return 0;
f5b3ef3
+			if (!st.f_fsid.__val[0] && !st.f_fsid.__val[1])
f5b3ef3
+				return 0;
f5b3ef3
+			snprintf(fsid_val, 17, "%08x%08x",
f5b3ef3
+				 st.f_fsid.__val[0], st.f_fsid.__val[1]);
f5b3ef3
+			val = fsid_val;
f5b3ef3
+		}
f5b3ef3
 	} else {
f5b3ef3
 		val = uuid;
f5b3ef3
 	}