mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 07:20:11 +00:00
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
This commit is contained in:
parent
6f7795fc9f
commit
4f35fbb680
@ -1509,6 +1509,19 @@ int GetClient(struct rx_connection * tcon, struct client **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…
Reference in New Issue
Block a user