diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-01-13 20:30:14 -0200 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-01-13 20:30:14 -0200 |
commit | ab7fb4d643a25bdd23969fa487bf07f348d15a55 (patch) | |
tree | 646d53fc0b07188c5549d4f54caaf121f78c2f09 /libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch | |
parent | 009f7018a63dfcd721b42fc5d25b8b39f15f66f3 (diff) | |
download | abslibre-ab7fb4d643a25bdd23969fa487bf07f348d15a55.tar.gz abslibre-ab7fb4d643a25bdd23969fa487bf07f348d15a55.tar.bz2 abslibre-ab7fb4d643a25bdd23969fa487bf07f348d15a55.zip |
linux-libre-3.12.7-2: fix 15 seconds nfs hang, #37886 kernel oops => https://bugs.archlinux.org/task/37886
Diffstat (limited to 'libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch')
-rw-r--r-- | libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch b/libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch new file mode 100644 index 000000000..be81fec76 --- /dev/null +++ b/libre/linux-libre/nfs-check-gssd-running-before-krb5i-auth.patch @@ -0,0 +1,48 @@ +Bugzilla: N/A +Upstream-status: queued in NFS git tree (for 3.13/3.14?) + +Currently, the client will attempt to use krb5i in the SETCLIENTID call +even if rpc.gssd isn't running. When that fails, it'll then fall back to +RPC_AUTH_UNIX. This introduced a delay when mounting if rpc.gssd isn't +running, and causes warning messages to pop up in the ring buffer. + +Check to see if rpc.gssd is running before even attempting to use krb5i +auth, and just silently skip trying to do so if it isn't. In the event +that the admin is actually trying to mount with krb5*, it will still +fail at a later stage of the mount attempt. + +Signed-off-by: Jeff Layton <jlayton@redhat.com> +Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> +--- + fs/nfs/nfs4client.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +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 +--- linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig 2013-09-02 16:46:10.000000000 -0400 ++++ linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c 2013-11-21 10:20:27.288286000 -0500 +@@ -10,6 +10,7 @@ + #include <linux/sunrpc/auth.h> + #include <linux/sunrpc/xprt.h> + #include <linux/sunrpc/bc_xprt.h> ++#include <linux/sunrpc/rpc_pipe_fs.h> + #include "internal.h" + #include "callback.h" + #include "delegation.h" +@@ -206,7 +207,11 @@ struct nfs_client *nfs4_init_client(stru + if (clp->cl_minorversion != 0) + __set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags); + __set_bit(NFS_CS_DISCRTRY, &clp->cl_flags); +- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I); ++ ++ error = -EINVAL; ++ if (gssd_running(clp->cl_net)) ++ error = nfs_create_rpc_client(clp, timeparms, ++ RPC_AUTH_GSS_KRB5I); + if (error == -EINVAL) + error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX); + if (error < 0) + +_______________________________________________ +kernel mailing list +kernel@lists.fedoraproject.org +https://admin.fedoraproject.org/mailman/listinfo/kernel |