Date: Thu, 25 Jun 2009 00:28:43 +0000 (UTC) From: Rick Macklem <rmacklem@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/rpc clnt_rc.c Message-ID: <200906250029.n5P0T7GJ086857@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
rmacklem 2009-06-25 00:28:43 UTC
FreeBSD src repository
Modified files:
sys/rpc clnt_rc.c
Log:
SVN rev 194934 on 2009-06-25 00:28:43Z by rmacklem
Fix two known problems in clnt_rc.c, plus issues w.r.t. smp noted
during reading of the code. Change the code so that it never accesses
rc_connecting, rc_closed or rc_client when the rc_lock mutex is not held.
Also, it now performs the CLNT_CLOSE(client) and CLNT_RELEASE(client)
calls after the rc_lock mutex has been released, since those calls do
msleep()s with another mutex held. Change clnt_reconnect_call() so that
releasing the reference count is delayed until after the
"if (rc->rc_client == client)" check, so that rc_client cannot have been
recycled.
Tested by: pho
Reviewed by: dfr
Approved by: kib (mentor)
Revision Changes Path
1.9 +74 -42 src/sys/rpc/clnt_rc.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906250029.n5P0T7GJ086857>
