afs_int32 cm_OfflineROIsValid = 0;
+afs_int32 cm_giveUpAllCBs = 0;
+
#ifdef AFS_FREELANCE_CLIENT
extern osi_mutex_t cm_Freelance_Lock;
#endif
unsigned long host = 0;
unsigned short port = 0;
cm_server_t *tsp = NULL;
- cm_cell_t * cellp = NULL;
+ cm_cell_t* cellp = NULL;
MUTEX_ENTER(&callp->lock);
tsp = cm_FindServerByIP(host, CM_SERVER_FILE);
if (tsp)
cellp = tsp->cellp;
+
+ if (!cellp)
+ osi_Log2(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d",
+ ntohl(host),
+ ntohs(port));
+ else
+ osi_Log3(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d for cell %s",
+ ntohl(host),
+ ntohs(port),
+ cellp->name /* does not need to be saved, doesn't change */);
+ } else {
+ osi_Log0(afsd_logp, "SRXAFSCB_CallBack from unknown host");
}
- osi_Log2(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d",
- ntohl(host),
- ntohs(port));
for (i=0; i < (long) fidsArrayp->AFSCBFids_len; i++) {
tfidp = &fidsArrayp->AFSCBFids_val[i];
cep->lock.pid_writer = 0;
cep->lock.src_indicator = 0;
cep->Length = scp->length.LowPart;
- cep->DataVersion = scp->dataVersion;
+ cep->DataVersion = (afs_uint32)(scp->dataVersion & 0xFFFFFFFF);
cep->callback = afs_data_pointer_to_int32(scp->cbServerp);
if (scp->flags & CM_SCACHEFLAG_PURERO && scp->volp)
cep->cbExpires = scp->volp->cbExpiresRO;
#else
cep->Length = (afs_int64) scp->length.QuadPart;
#endif
- cep->DataVersion = scp->dataVersion;
+ cep->DataVersion = (afs_uint32)(scp->dataVersion & 0xFFFFFFFF);
cep->callback = afs_data_pointer_to_int32(scp->cbServerp);
if (scp->flags & CM_SCACHEFLAG_PURERO && scp->volp)
cep->cbExpires = scp->volp->cbExpiresRO;
osi_Log0(afsd_logp, "CheckCBExpiration");
- now = osi_Time();
+ now = time(NULL);
lock_ObtainWrite(&cm_scacheLock);
for (i=0; i<cm_data.scacheHashTableSize; i++) {
for (scp = cm_data.scacheHashTablep[i]; scp; scp=scp->nextp) {
tsp->downTime = osi_Time();
}
cm_ForceNewConnections(tsp);
- lock_ReleaseMutex(&tsp->mx);
-
/* Now update the volume status */
for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) {
for (i=0; i<NUM_SERVER_VOLS; i++) {
}
}
}
+ lock_ReleaseMutex(&tsp->mx);
}
}
}
{
cm_server_t *tsp;
+ if (!cm_giveUpAllCBs)
+ return;
+
lock_ObtainWrite(&cm_serverLock);
for (tsp = cm_allServersp; tsp; tsp = tsp->allNextp) {
cm_GetServerNoLock(tsp);