Index: openafs/src/NTMakefile diff -c openafs/src/NTMakefile:1.27.2.3 openafs/src/NTMakefile:1.27.2.4 *** openafs/src/NTMakefile:1.27.2.3 Thu Feb 15 13:14:07 2007 --- openafs/src/NTMakefile Sun Aug 12 22:13:28 2007 *************** *** 605,612 **** install: finale - # InstallShield dependencies - # Clean target for obj tree clean: nmake /nologo /f ntmakefile "NTMAKE = nmake /nologo /f ntmakefile clean" "NTMAKE_HEADERS = nmake /nologo /f ntmakefile clean" "NTMAKE_OBJS = nmake /nologo /f ntmakefile clean" install --- 605,610 ---- *************** *** 653,675 **** $(NTMAKE) $(CD) ..\..\..\.. ! InstallShield5: ! echo ***** afs_setup_utils ! $(DOCD) $(SRC)\WINNT\afs_setup_utils ! $(CD) $(SRC)\WINNT\afs_setup_utils ! $(NTMAKE) ! $(CD) ..\..\.. ! ! $(DOCD) $(SRC)\WINNT\install\$@ ! $(CD) $(SRC)\WINNT\install\$@ ! $(NTMAKE) ! $(CD) ..\..\..\.. ! ! media: install InstallShield5 NSIS wix install-nsis: install NSIS install-wix: install wix ! install-is5: install InstallShield5 --- 651,661 ---- $(NTMAKE) $(CD) ..\..\..\.. ! media: install NSIS wix install-nsis: install NSIS install-wix: install wix ! Index: openafs/src/WINNT/afsd/afsd_init.c diff -c openafs/src/WINNT/afsd/afsd_init.c:1.79.2.14 openafs/src/WINNT/afsd/afsd_init.c:1.79.2.15 *** openafs/src/WINNT/afsd/afsd_init.c:1.79.2.14 Fri Jun 22 10:12:39 2007 --- openafs/src/WINNT/afsd/afsd_init.c Fri Aug 10 16:39:26 2007 *************** *** 541,546 **** --- 541,547 ---- osi_uid_t debugID; afs_uint64 cacheBlocks; DWORD cacheSize; + DWORD blockSize; long logChunkSize; DWORD stats; DWORD dwValue; *************** *** 696,708 **** logChunkSize); logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE; } - afsi_log("Chunk size %d", logChunkSize); } else { logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE; - afsi_log("Default chunk size %d", logChunkSize); } cm_logChunkSize = logChunkSize; cm_chunkSize = 1 << logChunkSize; dummyLen = sizeof(numBkgD); code = RegQueryValueEx(parmKey, "Daemons", NULL, NULL, --- 697,734 ---- logChunkSize); logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE; } } else { logChunkSize = CM_CONFIGDEFAULT_CHUNKSIZE; } cm_logChunkSize = logChunkSize; cm_chunkSize = 1 << logChunkSize; + afsi_log("Chunk size %u (%d)", cm_chunkSize, cm_logChunkSize); + + dummyLen = sizeof(blockSize); + code = RegQueryValueEx(parmKey, "blockSize", NULL, NULL, + (BYTE *) &blockSize, &dummyLen); + if (code == ERROR_SUCCESS) { + if (blockSize < 1 || + (blockSize > 1024 && (blockSize % CM_CONFIGDEFAULT_BLOCKSIZE != 0))) + { + afsi_log("Invalid block size %u specified, using default", blockSize); + blockSize = CM_CONFIGDEFAULT_BLOCKSIZE; + } else { + /* + * if the blockSize is less than 1024 we permit the blockSize to be + * specified in multiples of the default blocksize + */ + if (blockSize <= 1024) + blockSize *= CM_CONFIGDEFAULT_BLOCKSIZE; + } + } else { + blockSize = CM_CONFIGDEFAULT_BLOCKSIZE; + } + if (blockSize > cm_chunkSize) { + afsi_log("Block size cannot be larger than Chunk size."); + blockSize = cm_chunkSize; + } + afsi_log("Block size %u", blockSize); dummyLen = sizeof(numBkgD); code = RegQueryValueEx(parmKey, "Daemons", NULL, NULL, *************** *** 1033,1039 **** RegCloseKey (parmKey); ! cacheBlocks = ((afs_uint64)cacheSize * 1024) / CM_CONFIGDEFAULT_BLOCKSIZE; /* get network related info */ cm_noIPAddr = CM_MAXINTERFACE_ADDR; --- 1059,1065 ---- RegCloseKey (parmKey); ! cacheBlocks = ((afs_uint64)cacheSize * 1024) / blockSize; /* get network related info */ cm_noIPAddr = CM_MAXINTERFACE_ADDR; *************** *** 1076,1082 **** cm_InitCallback(); ! code = cm_InitMappedMemory(virtualCache, cm_CachePath, stats, cm_chunkSize, cacheBlocks); afsi_log("cm_InitMappedMemory code %x", code); if (code != 0) { *reasonP = "error initializing cache file"; --- 1102,1108 ---- cm_InitCallback(); ! code = cm_InitMappedMemory(virtualCache, cm_CachePath, stats, cm_chunkSize, cacheBlocks, blockSize); afsi_log("cm_InitMappedMemory code %x", code); if (code != 0) { *reasonP = "error initializing cache file"; Index: openafs/src/WINNT/afsd/afsd_service.c diff -c openafs/src/WINNT/afsd/afsd_service.c:1.52.4.13 openafs/src/WINNT/afsd/afsd_service.c:1.52.4.15 *** openafs/src/WINNT/afsd/afsd_service.c:1.52.4.13 Fri Jul 6 19:22:03 2007 --- openafs/src/WINNT/afsd/afsd_service.c Sun Aug 12 22:53:30 2007 *************** *** 1150,1156 **** ServiceStatus.dwCurrentState = SERVICE_START_PENDING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ServiceStatus.dwCheckPoint = 1; ! ServiceStatus.dwWaitHint = 30000; /* accept Power Events */ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT | SERVICE_ACCEPT_PARAMCHANGE; SetServiceStatus(StatusHandle, &ServiceStatus); --- 1150,1156 ---- ServiceStatus.dwCurrentState = SERVICE_START_PENDING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ServiceStatus.dwCheckPoint = 1; ! ServiceStatus.dwWaitHint = 120000; /* accept Power Events */ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT | SERVICE_ACCEPT_PARAMCHANGE; SetServiceStatus(StatusHandle, &ServiceStatus); *************** *** 1228,1240 **** } else { ! /* allow another 15 seconds to start */ ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; ServiceStatus.dwServiceSpecificExitCode = 0; ServiceStatus.dwCurrentState = SERVICE_START_PENDING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ServiceStatus.dwCheckPoint = 2; ! ServiceStatus.dwWaitHint = 20000; /* accept Power Events */ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT | SERVICE_ACCEPT_PARAMCHANGE; SetServiceStatus(StatusHandle, &ServiceStatus); --- 1228,1240 ---- } else { ! /* allow another 120 seconds to start */ ServiceStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS; ServiceStatus.dwServiceSpecificExitCode = 0; ServiceStatus.dwCurrentState = SERVICE_START_PENDING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ServiceStatus.dwCheckPoint = 2; ! ServiceStatus.dwWaitHint = 120000; /* accept Power Events */ ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT | SERVICE_ACCEPT_PARAMCHANGE; SetServiceStatus(StatusHandle, &ServiceStatus); *************** *** 1258,1265 **** } #ifndef NOTSERVICE ! ServiceStatus.dwCheckPoint++; ! ServiceStatus.dwWaitHint -= 5000; SetServiceStatus(StatusHandle, &ServiceStatus); #endif code = afsd_InitDaemons(&reason); --- 1258,1265 ---- } #ifndef NOTSERVICE ! ServiceStatus.dwCheckPoint = 3; ! ServiceStatus.dwWaitHint = 30000; SetServiceStatus(StatusHandle, &ServiceStatus); #endif code = afsd_InitDaemons(&reason); *************** *** 1296,1303 **** } #ifndef NOTSERVICE ! ServiceStatus.dwCheckPoint++; ! ServiceStatus.dwWaitHint -= 5000; SetServiceStatus(StatusHandle, &ServiceStatus); #endif --- 1296,1303 ---- } #ifndef NOTSERVICE ! ServiceStatus.dwCheckPoint = 4; ! ServiceStatus.dwWaitHint = 15000; SetServiceStatus(StatusHandle, &ServiceStatus); #endif *************** *** 1352,1358 **** #ifndef NOTSERVICE ServiceStatus.dwCurrentState = SERVICE_RUNNING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ! ServiceStatus.dwCheckPoint = 0; ServiceStatus.dwWaitHint = 0; /* accept Power events */ --- 1352,1358 ---- #ifndef NOTSERVICE ServiceStatus.dwCurrentState = SERVICE_RUNNING; ServiceStatus.dwWin32ExitCode = NO_ERROR; ! ServiceStatus.dwCheckPoint = 5; ServiceStatus.dwWaitHint = 0; /* accept Power events */ *************** *** 1401,1406 **** --- 1401,1413 ---- CloseHandle(hAFSDWorkerThread[cnt]); #endif + ServiceStatus.dwCurrentState = SERVICE_STOP_PENDING; + ServiceStatus.dwWin32ExitCode = NO_ERROR; + ServiceStatus.dwCheckPoint = 6; + ServiceStatus.dwWaitHint = 120000; + ServiceStatus.dwControlsAccepted = 0; + SetServiceStatus(StatusHandle, &ServiceStatus); + afsi_log("Received Termination Signal, Stopping Service"); if ( GlobalStatus ) *************** *** 1420,1438 **** } FreeLibrary(hHookDll); hHookDll = NULL; - - if (hookRc == FALSE) - { - ServiceStatus.dwCurrentState = SERVICE_STOPPED; - ServiceStatus.dwWin32ExitCode = NO_ERROR; - ServiceStatus.dwCheckPoint = 0; - ServiceStatus.dwWaitHint = 0; - ServiceStatus.dwControlsAccepted = 0; - SetServiceStatus(StatusHandle, &ServiceStatus); - - /* exit if initialization failed */ - return; - } } --- 1427,1432 ---- *************** *** 1500,1506 **** ServiceStatus.dwCurrentState = SERVICE_STOPPED; ServiceStatus.dwWin32ExitCode = GlobalStatus ? ERROR_EXCEPTION_IN_SERVICE : NO_ERROR; ! ServiceStatus.dwCheckPoint = 0; ServiceStatus.dwWaitHint = 0; ServiceStatus.dwControlsAccepted = 0; SetServiceStatus(StatusHandle, &ServiceStatus); --- 1494,1500 ---- ServiceStatus.dwCurrentState = SERVICE_STOPPED; ServiceStatus.dwWin32ExitCode = GlobalStatus ? ERROR_EXCEPTION_IN_SERVICE : NO_ERROR; ! ServiceStatus.dwCheckPoint = 7; ServiceStatus.dwWaitHint = 0; ServiceStatus.dwControlsAccepted = 0; SetServiceStatus(StatusHandle, &ServiceStatus); Index: openafs/src/WINNT/afsd/afskfw.c diff -c openafs/src/WINNT/afsd/afskfw.c:1.28.4.8 openafs/src/WINNT/afsd/afskfw.c:1.28.4.9 *** openafs/src/WINNT/afsd/afskfw.c:1.28.4.8 Wed Apr 18 11:59:35 2007 --- openafs/src/WINNT/afsd/afskfw.c Tue Aug 21 04:44:06 2007 *************** *** 1,5 **** /* ! * Copyright (c) 2004, 2005, 2006 Secure Endpoints Inc. * Copyright (c) 2003 SkyRope, LLC * All rights reserved. * --- 1,5 ---- /* ! * Copyright (c) 2004, 2005, 2006, 2007 Secure Endpoints Inc. * Copyright (c) 2003 SkyRope, LLC * All rights reserved. * *************** *** 3609,3615 **** DWORD dwLen = 0; if (!hUserToken || !newfilename || size <= 0) ! return; *newfilename = '\0'; --- 3609,3615 ---- DWORD dwLen = 0; if (!hUserToken || !newfilename || size <= 0) ! return 1; *newfilename = '\0'; Index: openafs/src/WINNT/afsd/cm_btree.c diff -c /dev/null openafs/src/WINNT/afsd/cm_btree.c:1.1.2.2 *** /dev/null Thu Aug 23 22:27:14 2007 --- openafs/src/WINNT/afsd/cm_btree.c Wed Aug 22 12:00:45 2007 *************** *** 0 **** --- 1 ---- + /* Place holder for B+ tree source code */ Index: openafs/src/WINNT/afsd/cm_btree.h diff -c /dev/null openafs/src/WINNT/afsd/cm_btree.h:1.1.2.2 *** /dev/null Thu Aug 23 22:27:14 2007 --- openafs/src/WINNT/afsd/cm_btree.h Wed Aug 22 12:00:45 2007 *************** *** 0 **** --- 1 ---- + /* place holder for B+ tree header */ Index: openafs/src/WINNT/afsd/cm_memmap.c diff -c openafs/src/WINNT/afsd/cm_memmap.c:1.7.2.6 openafs/src/WINNT/afsd/cm_memmap.c:1.7.2.7 *** openafs/src/WINNT/afsd/cm_memmap.c:1.7.2.6 Fri Jun 22 18:16:39 2007 --- openafs/src/WINNT/afsd/cm_memmap.c Fri Aug 10 16:39:26 2007 *************** *** 622,628 **** } int ! cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, afs_uint64 cacheBlocks) { HANDLE hf = INVALID_HANDLE_VALUE, hm; PSECURITY_ATTRIBUTES psa; --- 622,629 ---- } int ! cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, ! afs_uint64 cacheBlocks, afs_uint32 blockSize) { HANDLE hf = INVALID_HANDLE_VALUE, hm; PSECURITY_ATTRIBUTES psa; *************** *** 641,647 **** volumeSerialNumber = GetVolSerialNumber(cachePath); GetMachineSid(machineSid, sizeof(machineSid)); ! mappingSize = ComputeSizeOfMappingFile(stats, maxVols, maxCells, chunkSize, cacheBlocks, CM_CONFIGDEFAULT_BLOCKSIZE); if ( !virtualCache ) { psa = CreateCacheFileSA(); --- 642,648 ---- volumeSerialNumber = GetVolSerialNumber(cachePath); GetMachineSid(machineSid, sizeof(machineSid)); ! mappingSize = ComputeSizeOfMappingFile(stats, maxVols, maxCells, chunkSize, cacheBlocks, blockSize); if ( !virtualCache ) { psa = CreateCacheFileSA(); *************** *** 756,762 **** config_data_p->maxCells == maxCells && config_data_p->chunkSize == chunkSize && config_data_p->buf_nbuffers == cacheBlocks && ! config_data_p->blockSize == CM_CONFIGDEFAULT_BLOCKSIZE && config_data_p->bufferSize == mappingSize) { if ( config_data_p->dirty ) { --- 757,763 ---- config_data_p->maxCells == maxCells && config_data_p->chunkSize == chunkSize && config_data_p->buf_nbuffers == cacheBlocks && ! config_data_p->blockSize == blockSize && config_data_p->bufferSize == mappingSize) { if ( config_data_p->dirty ) { *************** *** 849,855 **** cm_data.baseAddress = baseAddress; cm_data.stats = stats; cm_data.chunkSize = chunkSize; ! cm_data.blockSize = CM_CONFIGDEFAULT_BLOCKSIZE; cm_data.bufferSize = mappingSize; cm_data.scacheHashTableSize = osi_PrimeLessThan(stats / 2 + 1); cm_data.volumeHashTableSize = osi_PrimeLessThan((afs_uint32)(maxVols/7 + 1)); --- 850,856 ---- cm_data.baseAddress = baseAddress; cm_data.stats = stats; cm_data.chunkSize = chunkSize; ! cm_data.blockSize = blockSize; cm_data.bufferSize = mappingSize; cm_data.scacheHashTableSize = osi_PrimeLessThan(stats / 2 + 1); cm_data.volumeHashTableSize = osi_PrimeLessThan((afs_uint32)(maxVols/7 + 1)); *************** *** 862,868 **** cm_data.buf_nbuffers = cacheBlocks; cm_data.buf_nOrigBuffers = 0; ! cm_data.buf_blockSize = CM_BUF_BLOCKSIZE; cm_data.buf_hashSize = osi_PrimeLessThan((afs_uint32)(cacheBlocks/7 + 1)); cm_data.mountRootGen = time(NULL); --- 863,869 ---- cm_data.buf_nbuffers = cacheBlocks; cm_data.buf_nOrigBuffers = 0; ! cm_data.buf_blockSize = blockSize; cm_data.buf_hashSize = osi_PrimeLessThan((afs_uint32)(cacheBlocks/7 + 1)); cm_data.mountRootGen = time(NULL); *************** *** 899,905 **** cm_data.bufHeaderBaseAddress = (cm_buf_t *) baseAddress; baseAddress += ComputeSizeOfDataHeaders(cacheBlocks); cm_data.bufDataBaseAddress = (char *) baseAddress; ! baseAddress += ComputeSizeOfDataBuffers(cacheBlocks, CM_CONFIGDEFAULT_BLOCKSIZE); cm_data.bufEndOfData = (char *) baseAddress; cm_data.buf_dirtyListp = NULL; cm_data.buf_dirtyListEndp = NULL; --- 900,906 ---- cm_data.bufHeaderBaseAddress = (cm_buf_t *) baseAddress; baseAddress += ComputeSizeOfDataHeaders(cacheBlocks); cm_data.bufDataBaseAddress = (char *) baseAddress; ! baseAddress += ComputeSizeOfDataBuffers(cacheBlocks, blockSize); cm_data.bufEndOfData = (char *) baseAddress; cm_data.buf_dirtyListp = NULL; cm_data.buf_dirtyListEndp = NULL; Index: openafs/src/WINNT/afsd/cm_memmap.h diff -c openafs/src/WINNT/afsd/cm_memmap.h:1.3.4.4 openafs/src/WINNT/afsd/cm_memmap.h:1.3.4.5 *** openafs/src/WINNT/afsd/cm_memmap.h:1.3.4.4 Fri Jun 22 18:16:39 2007 --- openafs/src/WINNT/afsd/cm_memmap.h Fri Aug 10 16:39:26 2007 *************** *** 115,119 **** VOID FreeCacheFileSA(PSECURITY_ATTRIBUTES psa); int cm_ShutdownMappedMemory(void); int cm_ValidateMappedMemory(char * cachePath); ! int cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, afs_uint64 cacheBlocks ); #endif /* CM_MEMMAP_H */ \ No newline at end of file --- 115,119 ---- VOID FreeCacheFileSA(PSECURITY_ATTRIBUTES psa); int cm_ShutdownMappedMemory(void); int cm_ValidateMappedMemory(char * cachePath); ! int cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, afs_uint64 cacheBlocks, afs_uint32 blockSize); #endif /* CM_MEMMAP_H */ \ No newline at end of file Index: openafs/src/WINNT/afsd/cm_vnodeops.c diff -c openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.34 openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.38 *** openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.34 Thu Aug 2 16:58:42 2007 --- openafs/src/WINNT/afsd/cm_vnodeops.c Thu Aug 23 16:43:08 2007 *************** *** 1857,1876 **** userp, reqp, &nscp); if (code == 0) { ! for ( i=0; ifid, &fids[i]) ) { ! code = CM_ERROR_TOO_MANY_SYMLINKS; ! cm_ReleaseSCache(nscp); ! nscp = NULL; ! break; } } ! if (i == fid_count && fid_count < MAX_FID_COUNT) { ! fids[fid_count++] = nscp->fid; ! } ! } ! ! if (code) { cm_ReleaseSCache(tscp); if (dirScp) cm_ReleaseSCache(dirScp); --- 1857,1888 ---- userp, reqp, &nscp); if (code == 0) { ! if (!strcmp(component,"..") || !strcmp(component,".")) { ! /* ! * roll back the fid list until we find the fid ! * that matches where we are now. Its not necessarily ! * one or two fids because they might have been ! * symlinks or mount points or both that were crossed. ! */ ! for ( i=fid_count-1; i>=0; i--) { ! if (!cm_FidCmp(&nscp->fid, &fids[i])) ! break; ! } ! } else { ! /* add the new fid to the list */ ! for ( i=0; ifid, &fids[i]) ) { ! code = CM_ERROR_TOO_MANY_SYMLINKS; ! cm_ReleaseSCache(nscp); ! nscp = NULL; ! break; ! } ! } ! if (i == fid_count && fid_count < MAX_FID_COUNT) { ! fids[fid_count++] = nscp->fid; } } ! } else { cm_ReleaseSCache(tscp); if (dirScp) cm_ReleaseSCache(dirScp); *************** *** 1940,1951 **** code = cm_AssembleLink(tscp, restp, &linkScp, &tempsp, userp, reqp); if (code == 0 && linkScp != NULL) { ! for ( i=0; ifid, &fids[i]) ) { ! code = CM_ERROR_TOO_MANY_SYMLINKS; ! cm_ReleaseSCache(linkScp); ! nscp = NULL; ! break; } } if (i == fid_count && fid_count < MAX_FID_COUNT) { --- 1952,1967 ---- code = cm_AssembleLink(tscp, restp, &linkScp, &tempsp, userp, reqp); if (code == 0 && linkScp != NULL) { ! if (linkScp == cm_data.rootSCachep) ! fid_count = 0; ! else { ! for ( i=0; ifid, &fids[i]) ) { ! code = CM_ERROR_TOO_MANY_SYMLINKS; ! cm_ReleaseSCache(linkScp); ! nscp = NULL; ! break; ! } } } if (i == fid_count && fid_count < MAX_FID_COUNT) { *************** *** 2710,2716 **** cm_callbackRequest_t cbReq; AFSFid newAFSFid; cm_fid_t newFid; ! cm_scache_t *scp; int didEnd; AFSStoreStatus inStatus; AFSFetchStatus updatedDirStatus; --- 2726,2732 ---- cm_callbackRequest_t cbReq; AFSFid newAFSFid; cm_fid_t newFid; ! cm_scache_t *scp = NULL; int didEnd; AFSStoreStatus inStatus; AFSFetchStatus updatedDirStatus; Index: openafs/src/WINNT/afsd/cm_volume.c diff -c openafs/src/WINNT/afsd/cm_volume.c:1.14.4.13 openafs/src/WINNT/afsd/cm_volume.c:1.14.4.15 *** openafs/src/WINNT/afsd/cm_volume.c:1.14.4.13 Thu Jul 5 15:22:16 2007 --- openafs/src/WINNT/afsd/cm_volume.c Thu Aug 23 12:49:03 2007 *************** *** 1457,1463 **** void cm_VolumeStatusNotification(cm_volume_t * volp, afs_uint32 volID, enum volstatus old, enum volstatus new) { ! char volstr[CELL_MAXNAMELEN + VL_MAXNAMELEN]; char *ext = ""; if (volID == volp->rw.ID) --- 1457,1463 ---- void cm_VolumeStatusNotification(cm_volume_t * volp, afs_uint32 volID, enum volstatus old, enum volstatus new) { ! char volstr[CELL_MAXNAMELEN + VL_MAXNAMELEN]=""; char *ext = ""; if (volID == volp->rw.ID) *************** *** 1471,1477 **** snprintf(volstr, sizeof(volstr), "%s:%s%s", volp->cellp->name, volp->namep, ext); osi_Log4(afsd_logp, "VolumeStatusNotification: %-48s [%10u] (%s -> %s)", ! volstr, volID, volstatus_str(old), volstatus_str(new)); cm_VolStatus_Change_Notification(volp->cellp->cellID, volID, new); } --- 1471,1477 ---- snprintf(volstr, sizeof(volstr), "%s:%s%s", volp->cellp->name, volp->namep, ext); osi_Log4(afsd_logp, "VolumeStatusNotification: %-48s [%10u] (%s -> %s)", ! osi_LogSaveString(afsd_logp, volstr), volID, volstatus_str(old), volstatus_str(new)); cm_VolStatus_Change_Notification(volp->cellp->cellID, volID, new); } Index: openafs/src/WINNT/afsd/fs_utils.c diff -c openafs/src/WINNT/afsd/fs_utils.c:1.10 openafs/src/WINNT/afsd/fs_utils.c:1.10.2.2 *** openafs/src/WINNT/afsd/fs_utils.c:1.10 Sat Mar 4 16:39:25 2006 --- openafs/src/WINNT/afsd/fs_utils.c Sun Aug 19 20:07:59 2007 *************** *** 122,130 **** } /* is this a digit or a digit-like thing? */ ! static int ismeta(ac, abase) ! register int abase; ! register int ac; { /* if (ac == '-' || ac == 'x' || ac == 'X') return 1; */ if (ac >= '0' && ac <= '7') return 1; if (abase <= 8) return 0; --- 122,128 ---- } /* is this a digit or a digit-like thing? */ ! static int ismeta(int abase, int ac) { /* if (ac == '-' || ac == 'x' || ac == 'X') return 1; */ if (ac >= '0' && ac <= '7') return 1; if (abase <= 8) return 0; *************** *** 136,152 **** } /* given that this is a digit or a digit-like thing, compute its value */ ! static int getmeta(ac) ! register int ac; { if (ac >= '0' && ac <= '9') return ac - '0'; if (ac >= 'a' && ac <= 'f') return ac - 'a' + 10; if (ac >= 'A' && ac <= 'F') return ac - 'A' + 10; return 0; } ! long util_GetInt32 (as, aval) ! register char *as; ! long *aval; { register long total; register int tc; --- 134,147 ---- } /* given that this is a digit or a digit-like thing, compute its value */ ! static int getmeta(int ac) { if (ac >= '0' && ac <= '9') return ac - '0'; if (ac >= 'a' && ac <= 'f') return ac - 'a' + 10; if (ac >= 'A' && ac <= 'F') return ac - 'A' + 10; return 0; } ! afs_int32 util_GetInt32 (char *as, afs_int32 *aval) { register long total; register int tc; Index: openafs/src/WINNT/afsd/fs_utils.h diff -c openafs/src/WINNT/afsd/fs_utils.h:1.7 openafs/src/WINNT/afsd/fs_utils.h:1.7.14.2 *** openafs/src/WINNT/afsd/fs_utils.h:1.7 Thu Feb 26 14:22:44 2004 --- openafs/src/WINNT/afsd/fs_utils.h Sun Aug 19 20:07:59 2007 *************** *** 33,39 **** extern struct hostent *hostutil_GetHostByName(char *namep); #endif ! // extern long util_GetInt32(char *stringp, long *valuep); extern long fs_StripDriveLetter(char *inPathp, char *outPathp, long outSize); --- 33,39 ---- extern struct hostent *hostutil_GetHostByName(char *namep); #endif ! extern afs_int32 util_GetInt32(char *stringp, afs_int32 *valuep); extern long fs_StripDriveLetter(char *inPathp, char *outPathp, long outSize); Index: openafs/src/WINNT/afsd/smb.h diff -c openafs/src/WINNT/afsd/smb.h:1.41.2.16 openafs/src/WINNT/afsd/smb.h:1.41.2.17 *** openafs/src/WINNT/afsd/smb.h:1.41.2.16 Thu Jul 5 15:22:16 2007 --- openafs/src/WINNT/afsd/smb.h Thu Aug 23 12:46:07 2007 *************** *** 523,529 **** * the response was already * sent. */ ! #define SMB_MAX_PATH 256 /* max path length */ /* prototypes */ --- 523,529 ---- * the response was already * sent. */ ! #define SMB_MAX_PATH 260 /* max path length */ /* prototypes */ Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.17 openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.18 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.17 Thu Aug 9 11:46:17 2007 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm Thu Aug 23 13:13:15 2007 *************** *** 57,63 ****

OpenAFS for Windows

!

Version 1.5.22

 

--- 57,63 ----

OpenAFS for Windows

!

Version 1.5.23

 

*************** *** 80,86 **** ·         OpenAFS for Windows 1.5.22 Release Notes

--- 80,86 ---- ·         OpenAFS for Windows 1.5.23 Release Notes

Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.17 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.18 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.17 Thu Aug 9 11:46:21 2007 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm Thu Aug 23 13:13:20 2007 *************** *** 18,24 **** .shape {behavior:url(#default#VML);} ! OpenAFS for Windows 1.5.22 Release Notes ! OpenAFS for Windows 1.5.23 Release Notes ! OpenAFS for Windows 1.5.22 Release Notes ! OpenAFS for Windows 1.5.23 Release Notes !

OpenAFS for Windows 1.5.22
Release Notes

The Andrew File System (AFS) is a location-independent --- 586,592 ----

!

OpenAFS for Windows 1.5.23
Release Notes

The Andrew File System (AFS) is a location-independent Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.16 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.17 *** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm:1.2.6.16 Thu Aug 9 11:46:24 2007 --- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/toc.htm Thu Aug 23 13:13:21 2007 *************** *** 10,16 **** ! OpenAFS for Windows 1.5.22 Table of Contents