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