diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2009-06-25 00:28:43 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2009-06-25 00:28:43 +0000 |
commit | 4876fd20a922acf5de5121f38e5a539ee6d38464 (patch) | |
tree | 036078daf96308eeac1e74c26c3748d009bad982 /sys/kern/subr_pcpu.c | |
parent | 1095cbed62537502696e678ee1dd0c1be558cdd6 (diff) | |
download | FreeBSD-src-4876fd20a922acf5de5121f38e5a539ee6d38464.zip FreeBSD-src-4876fd20a922acf5de5121f38e5a539ee6d38464.tar.gz |
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)
Diffstat (limited to 'sys/kern/subr_pcpu.c')
0 files changed, 0 insertions, 0 deletions