freebsd-dev/sys/rpc
Rick Macklem a4c5a1c315 When unmounting an NFS mount using sec=krb5[ip], the umount system
call could get hung sleeping on "gsssta" if the credentials for a user
that had been accessing the mount point have expired. This happened
because rpc_gss_destroy_context() would end up calling itself when the
"destroy context" RPC was attempted, trying to refresh the credentials.
This patch just checks for this case in rpc_gss_refresh() and returns
without attempting the refresh, which avoids the recursive call to
rpc_gss_destroy_context() and the subsequent hang.

Reviewed by:	dfr
Approved by:	re (Ken Smith), kib (mentor)
2009-07-01 16:42:03 +00:00
..
rpcsec_gss When unmounting an NFS mount using sec=krb5[ip], the umount system 2009-07-01 16:42:03 +00:00
auth_none.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
auth_unix.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
auth.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
authunix_prot.c Place hostnames and similar information fully under the prison system. 2009-05-29 21:27:12 +00:00
clnt_dg.c Make sure that cr_error is set to ESHUTDOWN when closing the connection. 2009-07-01 16:38:18 +00:00
clnt_rc.c Fix two known problems in clnt_rc.c, plus issues w.r.t. smp noted 2009-06-25 00:28:43 +00:00
clnt_stat.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
clnt_vc.c Fix upcall races in the client side krpc. For the client side upcall, 2009-06-04 14:49:27 +00:00
clnt.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
getnetconfig.c Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
inet_ntop.c Minor changes to improve compatibility with older FreeBSD releases. 2008-03-28 09:50:32 +00:00
inet_pton.c Minor changes to improve compatibility with older FreeBSD releases. 2008-03-28 09:50:32 +00:00
netconfig.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
nettype.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
pmap_prot.h Rename RPC's 'struct pmap' to 'struct portmap' to avoid confusing it with 2008-08-25 09:36:17 +00:00
replay.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
replay.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpc_callmsg.c Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
rpc_com.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpc_generic.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpc_msg.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpc_prot.c Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
rpc.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
rpcb_clnt.c It may be #if 0'd out code, but change a varname to not shadow a global. 2008-06-29 01:04:48 +00:00
rpcb_clnt.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
rpcb_prot.c Rename RPC's 'struct pmap' to 'struct portmap' to avoid confusing it with 2008-08-25 09:36:17 +00:00
rpcb_prot.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
rpcm_subs.h
rpcsec_gss.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
svc_auth_unix.c Rework the credential code to support larger values of NGROUPS and 2009-06-19 17:10:35 +00:00
svc_auth.c Rework the credential code to support larger values of NGROUPS and 2009-06-19 17:10:35 +00:00
svc_auth.h Implement support for RPCSEC_GSS authentication to both the NFS client 2008-11-03 10:38:00 +00:00
svc_dg.c Rework socket upcalls to close some races with setup/teardown of upcalls. 2009-06-01 21:17:03 +00:00
svc_generic.c Since svc_[dg|vc|tli|tp]_create() did not hold a reference count on the 2009-06-17 22:50:26 +00:00
svc_vc.c Since svc_[dg|vc|tli|tp]_create() did not hold a reference count on the 2009-06-17 22:50:26 +00:00
svc.c Since svc_[dg|vc|tli|tp]_create() did not hold a reference count on the 2009-06-17 22:50:26 +00:00
svc.h Fix two races in the server side krpc w.r.t upcalls: 2009-06-04 14:13:06 +00:00
types.h Add the new kernel-mode NFS Lock Manager. To use it instead of the 2008-03-26 15:23:12 +00:00
xdr.h fix xdrmem_control to be safe in an if statement 2009-05-30 22:23:58 +00:00