From: Andrew Deason Date: Wed, 27 Apr 2011 20:36:44 +0000 (-0500) Subject: viced: Do not try to reuse deleted client X-Git-Tag: openafs-devel-1_7_1~521 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=b2c6a850738437256626e0dfe743a09224879ad4 viced: Do not try to reuse deleted client When h_FindClient_r encounters a deleted client structure, it does not try to find a different client structure to use. Force it to use a new client structure by setting client to NULL when it detects a deleted client. This arguably reverts part of 4e55e30f5b2c149b350b6d6875793adf722fdc21, but the code paths in h_FindClient_r are very different now, so that commit is probably not too relevant. Change-Id: I8e5004c8a9a3d99919da8df4436e5aa97e338825 Reviewed-on: http://gerrit.openafs.org/4582 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/viced/host.c b/src/viced/host.c index b1b7d88..b8006d9 100644 --- a/src/viced/host.c +++ b/src/viced/host.c @@ -2362,11 +2362,12 @@ h_FindClient_r(struct rx_connection *tcon) client = (struct client *)rx_GetSpecific(tcon, rxcon_client_key); if (client && client->sid == rxr_CidOf(tcon) && client->VenusEpoch == rxr_GetEpoch(tcon) - && !(client->host->hostFlags & HOSTDELETED)) { + && !(client->host->hostFlags & HOSTDELETED) + && !client->deleted) { client->refCount++; h_Hold_r(client->host); - if (!client->deleted && client->prfail != 2) { + if (client->prfail != 2) { /* Could add shared lock on client here */ /* note that we don't have to lock entry in this path to * ensure CPS is initialized, since we don't call rx_SetSpecific