DEVEL15-dafs-optimize-shutdown-20071112
authorTom Keiser <tkeiser@sinenomine.net>
Mon, 12 Nov 2007 18:19:59 +0000 (18:19 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 12 Nov 2007 18:19:59 +0000 (18:19 +0000)
optimize shutdown case as is done elsewhere, for dafs.

(cherry picked from commit cd8311641fd32328dd1d8a07b1318ecb53726bd1)

src/viced/host.c

index 32761a9..ef1dca1 100644 (file)
@@ -3327,6 +3327,16 @@ CheckHost_r(register struct host *host, int held, char *dummy)
     struct rx_connection *cb_conn = NULL;
     int code;
 
+#ifdef AFS_DEMAND_ATTACH_FS
+    /* kill the checkhost lwp ASAP during shutdown */
+    FS_STATE_RDLOCK;
+    if (fs_state.mode == FS_MODE_SHUTDOWN) {
+       FS_STATE_UNLOCK;
+       return H_ENUMERATE_BAIL(held);
+    }
+    FS_STATE_UNLOCK;
+#endif
+
     /* Host is held by h_Enumerate_r */
     for (client = host->FirstClient; client; client = client->next) {
        if (client->refCount == 0 && client->LastCall < clientdeletetime) {