]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
When unmounting an NFS mount using sec=krb5[ip], the umount system
authorRick Macklem <rmacklem@FreeBSD.org>
Wed, 1 Jul 2009 16:42:03 +0000 (16:42 +0000)
committerRick Macklem <rmacklem@FreeBSD.org>
Wed, 1 Jul 2009 16:42:03 +0000 (16:42 +0000)
commita4c5a1c3156f8dcecccb1be158df3157a2e5f692
tree8f6df5fceb0e2a7cb9d84be29e6d7acc1eb22783
parentb766fabd9caa769d25d02444e1c9c54a0d4924ee
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)
sys/rpc/rpcsec_gss/rpcsec_gss.c