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>