else if (fidp->volume == volp->bk.ID)
statep = &volp->bk;
- if (statep->state != vl_offline) {
+ if (statep->state != vl_offline && statep->state != vl_unknown) {
retry = 1;
} else {
if (cm_CheckOfflineVolume(volp, statep->ID))
else if (fidp->volume == volp->bk.ID)
statep = &volp->bk;
- if (statep->state != vl_offline && statep->state != vl_busy) {
+ if (statep->state != vl_offline &&
+ statep->state != vl_busy &&
+ statep->state != vl_unknown) {
retry = 1;
} else {
if (!serversp) {
break;
}
- /* Log server being offline for this volume */
- sprintf(addr, "%d.%d.%d.%d",
- ((serverp->addr.sin_addr.s_addr & 0xff)),
- ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
- ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
- ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
+ if (serverp && fidp) {
+ /* Log server being offline for this volume */
+ sprintf(addr, "%d.%d.%d.%d",
+ ((serverp->addr.sin_addr.s_addr & 0xff)),
+ ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
+ ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
+ ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
- osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume);
+ osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume);
#ifndef DJGPP
- LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume);
+ LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume);
#endif
+ }
/* Mark server offline for this volume */
if (!serversp && fidp) {
free_svr_list = 1;
}
}
+
lock_ObtainWrite(&cm_serverLock);
for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
if (tsrp->server == serverp) {