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.

Trond has rejected this patch.  I'm not sure how to deal with it in a truly
clean way, so probably I won't care and still use this as a vendor patch.

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-03-30 18:02:23.000000000 -0800
+++ 25-akpm/net/sunrpc/svc.c	2005-03-30 18:02:23.000000000 -0800
@@ -463,6 +463,13 @@ err_bad_prog:
 	goto sendit;
 
 err_bad_vers:
+	if (prog == 100227 && 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
_