From: Jeffrey Altman Date: Fri, 22 Jun 2007 15:12:39 +0000 (+0000) Subject: DEVEL15-windows-misc-20070622 X-Git-Tag: openafs-devel-1_5_21~45 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=4d09998cf919602ed8fcdf4614d6c13c054fb7e5;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-misc-20070622 there were two sets of registry values that could be used to configure the daemon thread check intervals. keep the one that was documented in the release notes and discard the other. Add a registry value "daemonCheckOfflineVolInterval" to configure the offline volume check interval. Ensure that the cm_GetConn... functions initialized the output variables to NULL on error. (cherry picked from commit 43a27633c64f1bcb371fd35a52dc58586d81a5ba) --- diff --git a/src/WINNT/afsd/afsd_init.c b/src/WINNT/afsd/afsd_init.c index 01fb3b98a..4e397fad7 100644 --- a/src/WINNT/afsd/afsd_init.c +++ b/src/WINNT/afsd/afsd_init.c @@ -996,48 +996,6 @@ int afsd_InitCM(char **reasonP) if (rx_enable_process_stats) afsi_log("RX Process Statistics gathering is enabled"); - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckDownInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonCheckDownInterval = dwValue; - afsi_log("daemonCheckDownInterval is %d", cm_daemonCheckDownInterval); - - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckUpInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonCheckUpInterval = dwValue; - afsi_log("daemonCheckUpInterval is %d", cm_daemonCheckUpInterval); - - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckVolInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonCheckVolInterval = dwValue; - afsi_log("daemonCheckVolInterval is %d", cm_daemonCheckVolInterval); - - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckCBInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonCheckCBInterval = dwValue; - afsi_log("daemonCheckCBInterval is %d", cm_daemonCheckCBInterval); - - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckLockInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonCheckLockInterval = dwValue; - afsi_log("daemonCheckLockInterval is %d", cm_daemonCheckLockInterval); - - dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "daemonCheckTokenInterval", NULL, NULL, - (BYTE *) &dwValue, &dummyLen); - if (code == ERROR_SUCCESS) - cm_daemonTokenCheckInterval = dwValue; - afsi_log("daemonCheckTokenInterval is %d", cm_daemonTokenCheckInterval); - dummyLen = sizeof(DWORD); code = RegQueryValueEx(parmKey, "CallBackPort", NULL, NULL, (BYTE *) &dwValue, &dummyLen); diff --git a/src/WINNT/afsd/cm_conn.c b/src/WINNT/afsd/cm_conn.c index 32e62abfc..20c39cd66 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -975,9 +975,10 @@ long cm_ConnFromFID(struct cm_fid *fidp, struct cm_user *userp, cm_req_t *reqp, long code; cm_serverRef_t **serverspp; + *connpp = NULL; + code = cm_GetServerList(fidp, userp, reqp, &serverspp); if (code) { - *connpp = NULL; return code; } @@ -993,6 +994,8 @@ long cm_ConnFromVolume(struct cm_volume *volp, unsigned long volid, struct cm_us long code; cm_serverRef_t **serverspp; + *connpp = NULL; + serverspp = cm_GetVolServers(volp, volid); code = cm_ConnByMServers(*serverspp, userp, reqp, connpp); diff --git a/src/WINNT/afsd/cm_daemon.c b/src/WINNT/afsd/cm_daemon.c index 7dfc5ad80..5486e44d3 100644 --- a/src/WINNT/afsd/cm_daemon.c +++ b/src/WINNT/afsd/cm_daemon.c @@ -36,7 +36,7 @@ long cm_daemonCheckVolInterval = 3600; long cm_daemonCheckCBInterval = 60; long cm_daemonCheckLockInterval = 60; long cm_daemonTokenCheckInterval = 180; -long cm_daemonCheckBusyVolInterval = 600; +long cm_daemonCheckOfflineVolInterval = 600; osi_rwlock_t cm_daemonLock; @@ -246,46 +246,53 @@ cm_DaemonCheckInit(void) return; dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "DownServerCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckDownInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonCheckDownInterval = dummy; - + afsi_log("daemonCheckDownInterval is %d", cm_daemonCheckDownInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "UpServerCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckUpInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonCheckUpInterval = dummy; - + afsi_log("daemonCheckUpInterval is %d", cm_daemonCheckUpInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "VolumeCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckVolInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonCheckVolInterval = dummy; - + afsi_log("daemonCheckVolInterval is %d", cm_daemonCheckVolInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "CallbackCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckCBInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonCheckCBInterval = dummy; - + afsi_log("daemonCheckCBInterval is %d", cm_daemonCheckCBInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "LockCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckLockInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonCheckLockInterval = dummy; - + afsi_log("daemonCheckLockInterval is %d", cm_daemonCheckLockInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "TokenCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckTokenInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) cm_daemonTokenCheckInterval = dummy; - + afsi_log("daemonCheckTokenInterval is %d", cm_daemonTokenCheckInterval); + dummyLen = sizeof(DWORD); - code = RegQueryValueEx(parmKey, "BusyVolumeCheckInterval", NULL, NULL, + code = RegQueryValueEx(parmKey, "daemonCheckOfflineVolInterval", NULL, NULL, (BYTE *) &dummy, &dummyLen); if (code == ERROR_SUCCESS) - cm_daemonCheckBusyVolInterval = dummy; + cm_daemonCheckOfflineVolInterval = dummy; + afsi_log("daemonCheckOfflineVolInterval is %d", cm_daemonCheckOfflineVolInterval); RegCloseKey(parmKey); } @@ -340,7 +347,7 @@ void cm_Daemon(long parm) lastDownServerCheck = now - cm_daemonCheckDownInterval/2 + (rand() % cm_daemonCheckDownInterval); lastUpServerCheck = now - cm_daemonCheckUpInterval/2 + (rand() % cm_daemonCheckUpInterval); lastTokenCacheCheck = now - cm_daemonTokenCheckInterval/2 + (rand() % cm_daemonTokenCheckInterval); - lastBusyVolCheck = now - cm_daemonCheckBusyVolInterval/2 * (rand() % cm_daemonCheckBusyVolInterval); + lastBusyVolCheck = now - cm_daemonCheckOfflineVolInterval/2 * (rand() % cm_daemonCheckOfflineVolInterval); while (daemon_ShutdownFlag == 0) { /* check to see if the listener threads halted due to network @@ -394,7 +401,7 @@ void cm_Daemon(long parm) now = osi_Time(); } - if (now > lastBusyVolCheck + cm_daemonCheckBusyVolInterval) { + if (now > lastBusyVolCheck + cm_daemonCheckOfflineVolInterval) { lastVolCheck = now; cm_CheckOfflineVolumes(); now = osi_Time();