From: Andreas Gruenbacher <agruen@suse.de>

If the nfs_acl program is available, Solaris clients expect both version 2 and
version 3 to be available; RPC_PROG_MISMATCH leads to a mount failure.  Fake
RPC_PROG_UNAVAIL when asked for nfs_acl version 2.

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Olaf Kirch <okir@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/net/sunrpc/svc.c |    7 +++++++
 1 files changed, 7 insertions(+)

diff -puN net/sunrpc/svc.c~nfsacl-solaris-nfsacl-workaround net/sunrpc/svc.c
--- 25/net/sunrpc/svc.c~nfsacl-solaris-nfsacl-workaround	2005-01-23 01:27:57.114623584 -0800
+++ 25-akpm/net/sunrpc/svc.c	2005-01-23 01:27:57.117623128 -0800
@@ -458,6 +458,13 @@ err_bad_prog:
 	goto sendit;
 
 err_bad_vers:
+	if (prog == NFSACL_PROGRAM && vers == 2) {
+		/* If the nfs_acl program is available, Solaris clients expect
+		   both version 2 and version 3 to be available;
+		   RPC_PROG_MISMATCH leads to a mount failure. Fake
+		   RPC_PROG_UNAVAIL when asked for nfs_acl version 2. */
+		goto err_bad_prog;
+	}
 #ifdef RPC_PARANOIA
 	printk("svc: unknown version (%d)\n", vers);
 #endif
_