c476786
Bugzilla: N/A
c476786
Upstream-status: queued in NFS git tree (for 3.13/3.14?)
7306d34
7306d34
Currently, the client will attempt to use krb5i in the SETCLIENTID call
7306d34
even if rpc.gssd isn't running. When that fails, it'll then fall back to
7306d34
RPC_AUTH_UNIX. This introduced a delay when mounting if rpc.gssd isn't
7306d34
running, and causes warning messages to pop up in the ring buffer.
7306d34
7306d34
Check to see if rpc.gssd is running before even attempting to use krb5i
7306d34
auth, and just silently skip trying to do so if it isn't. In the event
7306d34
that the admin is actually trying to mount with krb5*, it will still
7306d34
fail at a later stage of the mount attempt.
7306d34
7306d34
Signed-off-by: Jeff Layton <jlayton@redhat.com>
7306d34
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
7306d34
---
7306d34
 fs/nfs/nfs4client.c |    7 ++++++-
7306d34
 1 files changed, 6 insertions(+), 1 deletions(-)
7306d34
7306d34
diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c
7306d34
--- linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig	2013-09-02 16:46:10.000000000 -0400
7306d34
+++ linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c	2013-11-21 10:20:27.288286000 -0500
7306d34
@@ -10,6 +10,7 @@
7306d34
 #include <linux/sunrpc/auth.h>
7306d34
 #include <linux/sunrpc/xprt.h>
7306d34
 #include <linux/sunrpc/bc_xprt.h>
7306d34
+#include <linux/sunrpc/rpc_pipe_fs.h>
7306d34
 #include "internal.h"
7306d34
 #include "callback.h"
7306d34
 #include "delegation.h"
7306d34
@@ -206,7 +207,11 @@ struct nfs_client *nfs4_init_client(stru
7306d34
 	if (clp->cl_minorversion != 0)
7306d34
 		__set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
7306d34
 	__set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
7306d34
-	error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I);
7306d34
+
7306d34
+	error = -EINVAL;
7306d34
+	if (gssd_running(clp->cl_net))
7306d34
+		error = nfs_create_rpc_client(clp, timeparms,
7306d34
+					      RPC_AUTH_GSS_KRB5I);
7306d34
 	if (error == -EINVAL)
7306d34
 		error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
7306d34
 	if (error < 0)
7306d34
7306d34
_______________________________________________
7306d34
kernel mailing list
7306d34
kernel@lists.fedoraproject.org
c476786
https://admin.fedoraproject.org/mailman/listinfo/kernel