@@ -2063,6 +2063,21 @@ again:
nfs4_root_machine_cred(clp);
goto again;
}
+ if (clnt->cl_auth->au_flavor == RPC_AUTH_GSS_KRB5I) {
+ clnt = rpc_clone_client_set_auth(clnt, RPC_AUTH_GSS_KRB5);
+ if (IS_ERR(clnt)) {
+ status = PTR_ERR(clnt);
+ break;
+ }
+ /* Note: this is safe because we haven't yet marked the
+ * client as ready, so we are the only user of
+ * clp->cl_rpcclient
+ */
+ clnt = xchg(&clp->cl_rpcclient, clnt);
+ rpc_shutdown_client(clnt);
+ clnt = clp->cl_rpcclient;
+ goto again;
+ }
if (clnt->cl_auth->au_flavor == RPC_AUTH_UNIX)
break;
case -NFS4ERR_CLID_INUSE: