From: Jeffrey Altman Date: Fri, 22 Jun 2007 15:11:04 +0000 (+0000) Subject: windows-misc-20070622 X-Git-Tag: BP-openafs-windows-kdfs-ifs~649 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=43a27633c64f1bcb371fd35a52dc58586d81a5ba;p=packages%2Fo%2Fopenafs.git 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. --- diff --git a/src/WINNT/afsd/afsd_init.c b/src/WINNT/afsd/afsd_init.c index dc9389193..c71426368 100644 --- a/src/WINNT/afsd/afsd_init.c +++ b/src/WINNT/afsd/afsd_init.c @@ -994,48 +994,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 f162443f0..0cee8afc6 100644 --- a/src/WINNT/afsd/cm_conn.c +++ b/src/WINNT/afsd/cm_conn.c @@ -938,9 +938,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; } @@ -956,6 +957,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 78a04f5d2..e5f1bab6e 100644 --- a/src/WINNT/afsd/cm_daemon.c +++ b/src/WINNT/afsd/cm_daemon.c @@ -32,7 +32,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; @@ -240,46 +240,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); } @@ -334,7 +341,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 @@ -388,7 +395,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();