DAFS: do not save or restore host state if CPS in progress
[openafs.git] / src / viced / host.c
index 2b21a85..36f9e88 100644 (file)
@@ -107,6 +107,9 @@ void h_TossStuff_r(struct host *host);
 #define        IN_CLASSB_SUBNET        0xffffff00
 #endif
 
+#define hostBusyFlags(hf) \
+       ((hf) & (HWHO_INPROGRESS | HCPS_INPROGRESS | HCPS_WAITING) \
+       || !((hf) & ALTADDR))
 
 /* get a new block of CEs and chain it on CEFree */
 static void
@@ -3174,8 +3177,7 @@ h_isBusy_r(struct host *host)
        return 1;
     }
 
-    if ((host->z.hostFlags & HWHO_INPROGRESS) || !(host->z.hostFlags & ALTADDR)) {
-       /* We shouldn't hit this if the host wasn't locked, but just in case... */
+    if (hostBusyFlags(host->z.hostFlags)) {
        return 1;
     }
 
@@ -3637,7 +3639,7 @@ h_stateRestoreHost(struct fs_dump_state * state)
        opr_Assert(hcps != NULL);
     }
 
-    if ((hdsk.hostFlags & HWHO_INPROGRESS) || !(hdsk.hostFlags & ALTADDR)) {
+    if (hostBusyFlags(hdsk.hostFlags)) {
        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),