walters / rpms / nfs-utils

Forked from rpms/nfs-utils 6 years ago
Clone
f5b3ef3
commit ec16220910f0bf1bf2b8e1d50e78df7da11d8b1e
f5b3ef3
Author: David Woodhouse <David.Woodhouse@intel.com>
f5b3ef3
Date:   Thu Aug 28 11:07:53 2008 -0400
f5b3ef3
f5b3ef3
    Stop exportfs warning about needing fsid, when we actually have one
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/exportfs/exportfs.c b/utils/exportfs/exportfs.c
f5b3ef3
index 18dfe5a..fec2571 100644
f5b3ef3
--- a/utils/exportfs/exportfs.c
f5b3ef3
+++ b/utils/exportfs/exportfs.c
f5b3ef3
@@ -12,6 +12,7 @@
f5b3ef3
 #include <config.h>
f5b3ef3
 #endif
f5b3ef3
 
f5b3ef3
+#include <sys/vfs.h>
f5b3ef3
 #include <unistd.h>
f5b3ef3
 #include <stdlib.h>
f5b3ef3
 #include <string.h>
f5b3ef3
@@ -388,6 +389,8 @@ validate_export(nfs_export *exp)
f5b3ef3
 	 */
f5b3ef3
 	struct stat stb;
f5b3ef3
 	char *path = exp->m_export.e_path;
f5b3ef3
+	struct statfs64 stf;
f5b3ef3
+	int fs_has_fsid = 0;
f5b3ef3
 
f5b3ef3
 	if (stat(path, &stb) < 0) {
f5b3ef3
 		fprintf(stderr, "exportfs: Warning: %s does not exist\n",
f5b3ef3
@@ -403,7 +406,12 @@ validate_export(nfs_export *exp)
f5b3ef3
 	if (!can_test())
f5b3ef3
 		return;
f5b3ef3
 
f5b3ef3
-	if ((exp->m_export.e_flags & NFSEXP_FSID) || exp->m_export.e_uuid) {
f5b3ef3
+	if (!statfs64(path, &stf) &&
f5b3ef3
+	    (stf.f_fsid.__val[0] || stf.f_fsid.__val[1]))
f5b3ef3
+		fs_has_fsid = 1;
f5b3ef3
+
f5b3ef3
+	if ((exp->m_export.e_flags & NFSEXP_FSID) || exp->m_export.e_uuid ||
f5b3ef3
+	    fs_has_fsid) {
f5b3ef3
 		if ( !test_export(path, 1)) {
f5b3ef3
 			fprintf(stderr, "exportfs: Warning: %s does not "
f5b3ef3
 				"support NFS export.\n",