osi_Assert(hcps != NULL);
}
+ if ((hdsk.hostFlags & HWHO_INPROGRESS) || !(hdsk.hostFlags & ALTADDR)) {
+ char hoststr[16];
+ ViceLog(0, ("h_stateRestoreHost: skipping host %s:%d due to invalid flags 0x%x\n",
+ afs_inet_ntoa_r(hdsk.host, hoststr), (int)ntohs(hdsk.port),
+ (unsigned)hdsk.hostFlags));
+ bail = 0;
+ state->h_map.entries[hdsk.index].valid = FS_STATE_IDX_SKIPPED;
+ goto done;
+ }
+
/* for restoring state, we better be able to get a host! */
host = GetHT();
osi_Assert(host != NULL);
h_InsertList_r(host);
/* setup host id map entry */
+ state->h_map.entries[hdsk.index].valid = FS_STATE_IDX_VALID;
state->h_map.entries[hdsk.index].old_idx = hdsk.index;
state->h_map.entries[hdsk.index].new_idx = host->index;
if (old >= state->h_map.len) {
ViceLog(0, ("h_OldToNew: index %d is out of range\n", old));
ret = 1;
- } else if (state->h_map.entries[old].old_idx != old) { /* sanity check */
+ } else if (state->h_map.entries[old].valid != FS_STATE_IDX_VALID ||
+ state->h_map.entries[old].old_idx != old) { /* sanity check */
ViceLog(0, ("h_OldToNew: index %d points to an invalid host record\n", old));
ret = 1;
} else {