mirror of
https://git.openafs.org/openafs.git
synced 2025-01-31 13:38:01 +00:00
STABLE12-viced-vbusy-when-getclient-fails-20030317
more paranoia to not crash if GetClient fails, since there's apparently a race we haven't found yet (cherry picked from commit 4f35fbb68005579f626d021632e899301f551c66)
This commit is contained in:
parent
fb45c4e0bf
commit
5020cd875f
@ -1492,6 +1492,19 @@ int GetClient(tcon, cp)
|
|||||||
H_LOCK
|
H_LOCK
|
||||||
|
|
||||||
*cp = client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
|
*cp = client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
|
||||||
|
if (client == NULL || client->tcon == NULL) {
|
||||||
|
ViceLog(0, ("GetClient: no client in conn %x (host %x), VBUSYING\n",
|
||||||
|
tcon, rx_HostOf(rx_PeerOf(tcon))));
|
||||||
|
H_UNLOCK
|
||||||
|
return VBUSY;
|
||||||
|
}
|
||||||
|
if (rxr_CidOf(client->tcon) != client->sid) {
|
||||||
|
ViceLog(0, ("GetClient: tcon %x tcon sid %d client sid %d\n",
|
||||||
|
client->tcon, rxr_CidOf(client->tcon),
|
||||||
|
client->sid));
|
||||||
|
H_UNLOCK
|
||||||
|
return VBUSY;
|
||||||
|
}
|
||||||
if (!(client && client->tcon && rxr_CidOf(client->tcon) == client->sid)) {
|
if (!(client && client->tcon && rxr_CidOf(client->tcon) == client->sid)) {
|
||||||
if (!client)
|
if (!client)
|
||||||
ViceLog(0, ("GetClient: no client in conn %x\n", tcon));
|
ViceLog(0, ("GetClient: no client in conn %x\n", tcon));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user