afs_int32
-afs_ServerDown(struct srvAddr *sa)
+afs_ServerDown(struct srvAddr *sa, int code)
{
struct server *aserver = sa->server;
afs_MarkServerUpOrDown(sa, SRVR_ISDOWN);
if (sa->sa_portal == aserver->cell->vlport)
print_internet_address
- ("afs: Lost contact with volume location server ", sa, "", 1);
+ ("afs: Lost contact with volume location server ", sa, "", 1, code);
else
print_internet_address("afs: Lost contact with file server ", sa, "",
- 1);
+ 1, code);
return 1;
} /*ServerDown */
if (tc->parent->srvr == sa) {
afs_MarkServerUpOrDown(sa, 0);
print_internet_address("afs: volume location server ", sa,
- " is back up", 2);
+ " is back up", 2, code);
}
}
if (( results[i] >= 0 ) && (sa->sa_flags & SRVADDR_ISDOWN) &&
(tc->parent->srvr == sa)) {
/* server back up */
- print_internet_address("afs: file server ", sa, " is back up", 2);
+ print_internet_address("afs: file server ", sa, " is back up", 2,
+ results[i]);
ObtainWriteLock(&afs_xserver, 244);
ObtainWriteLock(&afs_xsrvAddr, 245);
} else {
if (results[i] < 0) {
/* server crashed */
- afs_ServerDown(sa);
+ afs_ServerDown(sa, results[i]);
ForceNewConnections(sa); /* multi homed clients */
}
}
ObtainWriteLock(&afs_xserver, 723);
/* we forced a conn above; important we mark it down if needed */
if ((code < 0) && (code != RXGEN_OPCODE)) {
- afs_ServerDown(tc->parent->srvr);
+ afs_ServerDown(tc->parent->srvr, code);
ForceNewConnections(tc->parent->srvr); /* multi homed clients */
}
afs_PutConn(tc, rxconn, SHARED_LOCK);