svn commit: r236758 - projects/nfsv4.1-client/sys/fs/nfsclient

Rick Macklem rmacklem at FreeBSD.org
Fri Jun 8 16:16:04 UTC 2012


Author: rmacklem
Date: Fri Jun  8 16:16:03 2012
New Revision: 236758
URL: http://svn.freebsd.org/changeset/base/236758

Log:
  Fix the NFSv4.1 client so that it returns ENOENT instead of EIO
  for the case where a server replies NFSERR_BADNAME or NFSERR_BADCHAR.
  This works better for servers that reply NFSERR_BADNAME/NFSERR_BADCHAR
  for "*.sh" when there is nothing for the shell to expand.

Modified:
  projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clport.c

Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clport.c
==============================================================================
--- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clport.c	Fri Jun  8 16:12:58 2012	(r236757)
+++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clport.c	Fri Jun  8 16:16:03 2012	(r236758)
@@ -1118,6 +1118,10 @@ nfscl_maperr(struct thread *td, int erro
 		    "No name and/or group mapping for uid,gid:(%d,%d)\n",
 		    uid, gid);
 		return (EPERM);
+	case NFSERR_BADNAME:
+	case NFSERR_BADCHAR:
+		printf("nfsv4 char/name not handled by server\n");
+		return (ENOENT);
 	case NFSERR_STALECLIENTID:
 	case NFSERR_STALESTATEID:
 	case NFSERR_EXPIRED:
@@ -1138,8 +1142,6 @@ nfscl_maperr(struct thread *td, int erro
 	case NFSERR_LEASEMOVED:
 	case NFSERR_RECLAIMBAD:
 	case NFSERR_BADXDR:
-	case NFSERR_BADCHAR:
-	case NFSERR_BADNAME:
 	case NFSERR_OPILLEGAL:
 		printf("nfsv4 client/server protocol prob err=%d\n",
 		    error);


More information about the svn-src-projects mailing list