diff --git a/flaim/src/fdbcopy.cpp b/flaim/src/fdbcopy.cpp index 10dd9bb..ae399df 100644 --- a/flaim/src/fdbcopy.cpp +++ b/flaim/src/fdbcopy.cpp @@ -239,8 +239,7 @@ FSTATIC RCODE flmCopyDb( } if( RC_BAD( rc = pSrcSFileHdl->setup( pSrcSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, 0))) { goto Exit; } @@ -355,8 +354,8 @@ FSTATIC RCODE flmCopyDb( } if( RC_BAD( rc = pDestSFileHdl->setup( pDestSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } @@ -535,8 +534,8 @@ FSTATIC RCODE flmCopyDb( goto Exit; } - // For file #0, don't copy first 2K - it will be set up to show - // maintenance in progress. Then the first 2K will be copied + // For the control file, don't copy first 2K - it will be set up + // to show maintenance in progress. Then the first 2K will be copied // later. if (!uiFileNumber) @@ -898,7 +897,7 @@ FSTATIC RCODE flmCopyFile( FLMUINT uiBytesRead; FLMUINT uiBytesWritten; FLMUINT uiOffset; - FLMBYTE ucLogHdr [LOG_HEADER_SIZE]; + FLMBYTE * pucLogHdr = NULL; FLMUINT uiNewChecksum; FLMBOOL bCreatedDestFile = FALSE; @@ -933,9 +932,16 @@ FSTATIC RCODE flmCopyFile( bCreatedDestFile = TRUE; } - // Allocate a buffer for reading and writing. + // Allocate a buffer for reading and writing - if (RC_BAD( rc = f_alloc( uiBufferSize, &pucBuffer))) + if( RC_BAD( rc = f_allocAlignedBuffer( uiBufferSize, &pucBuffer))) + { + goto Exit; + } + + // Allocate a buffer for the log header + + if( RC_BAD( rc = f_allocAlignedBuffer( 2048, &pucLogHdr))) { goto Exit; } @@ -950,7 +956,7 @@ FSTATIC RCODE flmCopyFile( { // Read the first 2K of the source file. - if (RC_BAD( rc = pSrcFileHdl->read( 0L, 2048, pucBuffer, &uiBytesRead))) + if (RC_BAD( rc = pSrcFileHdl->read( 0, 2048, pucBuffer, &uiBytesRead))) { if (rc == FERR_IO_END_OF_FILE) { @@ -966,18 +972,17 @@ FSTATIC RCODE flmCopyFile( if (uiBytesRead < 2048) { - f_memset( &pucBuffer [uiBytesRead], 0, (int)(2048 - uiBytesRead)); + f_memset( &pucBuffer[ uiBytesRead], 0, (int)(2048 - uiBytesRead)); } // Attempt to read the log header from the destination file. // It is OK if we can't read it, because if we created the // destination file, these bytes may not be present. - if ((bCreatedDestFile) || - (RC_BAD( pDestFileHdl->read( 16L, LOG_HEADER_SIZE, - ucLogHdr, &uiBytesRead)))) + if( bCreatedDestFile || + RC_BAD( pDestFileHdl->read( 0, 2048, pucLogHdr, &uiBytesRead))) { - f_memset( ucLogHdr, 0, sizeof(ucLogHdr)); + f_memset( pucLogHdr, 0, sizeof( 2048)); } // Set the transaction ID to zero. MUST ALSO SET THE TRANS ACTIVE FLAG @@ -986,20 +991,20 @@ FSTATIC RCODE flmCopyFile( // We must use zero, because it is the only transaction ID that will not // appear on ANY block. - UD2FBA( 0, &ucLogHdr [LOG_CURR_TRANS_ID]); + UD2FBA( 0, &pucLogHdr[ 16 + LOG_CURR_TRANS_ID]); // Recalculate the log header checksum so that readers will not get a // checksum error. - uiNewChecksum = lgHdrCheckSum( ucLogHdr, FALSE); - UW2FBA( (FLMUINT16)uiNewChecksum, &ucLogHdr [LOG_HDR_CHECKSUM]); - f_memcpy( &pucBuffer [16], ucLogHdr, LOG_HEADER_SIZE); + uiNewChecksum = lgHdrCheckSum( &pucLogHdr[ 16], FALSE); + UW2FBA( (FLMUINT16)uiNewChecksum, &pucLogHdr[ 16 + LOG_HDR_CHECKSUM]); + f_memcpy( &pucBuffer[ 16], &pucLogHdr[ 16], LOG_HEADER_SIZE); // Write this "special" first 2K into the destination file. // The real first 2K from the source file will be copied in // at a later time. - if (RC_BAD( rc = pDestFileHdl->write( 0L, 2048, + if (RC_BAD( rc = pDestFileHdl->write( 0, 2048, pucBuffer, &uiBytesWritten))) { goto Exit; @@ -1011,7 +1016,7 @@ FSTATIC RCODE flmCopyFile( if (pucInMemLogHdr) { - f_memcpy( pucInMemLogHdr, ucLogHdr, LOG_HEADER_SIZE); + f_memcpy( pucInMemLogHdr, &pucLogHdr[ 16], LOG_HEADER_SIZE); } } @@ -1061,7 +1066,7 @@ FSTATIC RCODE flmCopyFile( (uiOffset <= 16) && (uiOffset + uiBytesWritten >= 16 + LOG_HEADER_SIZE)) { - f_memcpy( pucInMemLogHdr, &pucBuffer [16 - uiOffset], + f_memcpy( pucInMemLogHdr, &pucBuffer[ 16 - uiOffset], LOG_HEADER_SIZE); } @@ -1123,17 +1128,22 @@ FSTATIC RCODE flmCopyFile( Exit: - if (pucBuffer) + if( pucBuffer) { - f_free( &pucBuffer); + f_freeAlignedBuffer( &pucBuffer); } - if (pSrcFileHdl) + if( pucLogHdr) + { + f_freeAlignedBuffer( &pucLogHdr); + } + + if( pSrcFileHdl) { pSrcFileHdl->Release(); } - if (pDestFileHdl) + if( pDestFileHdl) { pDestFileHdl->flush(); pDestFileHdl->Release(); @@ -1142,7 +1152,7 @@ Exit: // Attempt to delete the destination file if // we didn't successfully copy it. - if (RC_BAD( rc)) + if( RC_BAD( rc)) { (void)pFileSystem->deleteFile( pDbCopyInfo->szDestFileName); } diff --git a/flaim/src/fdbremov.cpp b/flaim/src/fdbremov.cpp index 08e532c..02ec405 100644 --- a/flaim/src/fdbremov.cpp +++ b/flaim/src/fdbremov.cpp @@ -88,8 +88,8 @@ FLMEXP RCODE FLMAPI FlmDbRemove( } // Allocate a buffer for reading the header stuff. - - if (RC_BAD( rc = f_alloc( 2048, &pucBuffer))) + + if( RC_BAD( rc = f_allocAlignedBuffer( 2048, &pucBuffer))) { goto Exit; } @@ -379,22 +379,22 @@ FLMEXP RCODE FLMAPI FlmDbRemove( Exit: - if (pszTmpName) + if( pszTmpName) { f_free( &pszTmpName); } - if (pFileHdl) + if( pFileHdl) { pFileHdl->Release(); } - if (pucBuffer) + if( pucBuffer) { - f_free( &pucBuffer); + f_freeAlignedBuffer( &pucBuffer); } - if (pDirHdl) + if( pDirHdl) { pDirHdl->Release(); } diff --git a/flaim/src/fdbrenam.cpp b/flaim/src/fdbrenam.cpp index b885883..9c17a4a 100644 --- a/flaim/src/fdbrenam.cpp +++ b/flaim/src/fdbrenam.cpp @@ -205,7 +205,7 @@ FLMEXP RCODE FLMAPI FlmDbRename( // Allocate memory for a read buffer, the log header, and various // file names. - if (RC_BAD( rc = f_alloc( + if( RC_BAD( rc = f_allocAlignedBuffer( 2048 + LOG_HEADER_SIZE + F_PATH_MAX_SIZE * 5, &pucBuffer))) { goto Exit; @@ -492,19 +492,19 @@ FLMEXP RCODE FLMAPI FlmDbRename( Exit: - if (pFileHdl) + if( pFileHdl) { pFileHdl->Release(); } - if (pucBuffer) + if( pucBuffer) { - f_free( &pucBuffer); + f_freeAlignedBuffer( &pucBuffer); } // Free the list of renamed files. - while (pRenameList) + while( pRenameList) { DBRenameInfo * pRenameFile; diff --git a/flaim/src/ffilehdr.cpp b/flaim/src/ffilehdr.cpp index a595d48..7f4b11a 100644 --- a/flaim/src/ffilehdr.cpp +++ b/flaim/src/ffilehdr.cpp @@ -225,7 +225,7 @@ Desc: This routine reads and verifies the information contained in the RCODE flmReadAndVerifyHdrInfo( DB_STATS * pDbStats, IF_FileHdl * pFileHdl, - FLMBYTE * pReadBuf, + FLMBYTE * pucReadBuf, FILE_HDR * pFileHdrRV, LOG_HDR * pLogHdrRV, FLMBYTE * pLogHdr) @@ -233,34 +233,31 @@ RCODE flmReadAndVerifyHdrInfo( RCODE rc = FERR_OK; RCODE rc0; RCODE rc1; - FLMBYTE * pBuf; + FLMBYTE * pucBuf; FLMBYTE * pucLogHdr; FLMUINT uiBytesRead; FLMUINT uiVersionNum; // Read the fixed information area - f_memset( pReadBuf, 0, 2048); - - rc0 = pFileHdl->read( 1L, 2047, &pReadBuf [1], &uiBytesRead); + rc0 = pFileHdl->read( 0, 2048, pucReadBuf, &uiBytesRead); // Increment bytes read - to account for byte zero, which // was not really read in. - uiBytesRead++; - pBuf = pReadBuf; - *pBuf = 0xFF; + pucBuf = pucReadBuf; + *pucBuf = 0xFF; // Before doing any checking, get whatever we can from the // first 2048 bytes. For the flmGetHdrInfo routine, we want // to get whatever we can from the headers, even if it is // invalid. - rc1 = flmGetFileHdrInfo( pBuf, &pBuf[ FLAIM_HEADER_START], pFileHdrRV); + rc1 = flmGetFileHdrInfo( pucBuf, &pucBuf[ FLAIM_HEADER_START], pFileHdrRV); // Get the log header information - pucLogHdr = &pBuf[ DB_LOG_HEADER_START]; + pucLogHdr = &pucBuf[ DB_LOG_HEADER_START]; if( pLogHdr) { @@ -377,24 +374,24 @@ RCODE flmGetHdrInfo( FLMBYTE * pLogHdr) { RCODE rc = FERR_OK; - FLMBYTE * pBuf = NULL; + FLMBYTE * pucBuf = NULL; - if (RC_BAD( rc = f_alloc( 2048, &pBuf))) + if( RC_BAD( rc = f_allocAlignedBuffer( 2048, &pucBuf))) { goto Exit; } - if( RC_BAD( rc = flmReadAndVerifyHdrInfo( NULL, pFileHdl, pBuf, pFileHdrRV, - pLogHdrRV, pLogHdr))) + if( RC_BAD( rc = flmReadAndVerifyHdrInfo( NULL, pFileHdl, + pucBuf, pFileHdrRV, pLogHdrRV, pLogHdr))) { goto Exit; } Exit: - if( pBuf) + if( pucBuf) { - f_free( &pBuf); + f_freeAlignedBuffer( &pucBuf); } return( rc); diff --git a/flaim/src/flbackup.cpp b/flaim/src/flbackup.cpp index 86646ac..152f4af 100644 --- a/flaim/src/flbackup.cpp +++ b/flaim/src/flbackup.cpp @@ -249,12 +249,16 @@ FLMEXP RCODE FLMAPI FlmDbBackupBegin( // Allocate the backup handle - if( RC_BAD( rc = f_alloc( sizeof( FBak), &pFBak))) + if( RC_BAD( rc = f_calloc( sizeof( FBak), &pFBak))) + { + goto Exit; + } + + if( RC_BAD( rc = f_allocAlignedBuffer( 2048, &pFBak->pucDbHeader))) { goto Exit; } - f_memset( pFBak, 0, sizeof( FBak)); pFBak->hDb = hDb; pFBak->uiDbVersion = uiDbVersion; @@ -266,14 +270,14 @@ FLMEXP RCODE FLMAPI FlmDbBackupBegin( if( RC_BAD( rc = FlmDbTransBegin( hDb, uiTransType | FLM_DONT_KILL_TRANS | FLM_DONT_POISON_CACHE, - FLM_NO_TIMEOUT, pFBak->ucDbHeader))) + FLM_NO_TIMEOUT, pFBak->pucDbHeader))) { goto Exit; } pFBak->bTransStarted = TRUE; pFBak->uiTransType = uiTransType; - pLogHdr = &pFBak->ucDbHeader[ DB_LOG_HEADER_START]; + pLogHdr = &pFBak->pucDbHeader[ DB_LOG_HEADER_START]; // Don't allow an incremental backup to be performed // if a full backup has not yet been done. @@ -389,6 +393,11 @@ Exit: (void)FlmDbTransAbort( hDb); } + if( pFBak->pucDbHeader) + { + f_freeAlignedBuffer( &pFBak->pucDbHeader); + } + f_free( &pFBak); } @@ -598,7 +607,7 @@ FLMEXP RCODE FLMAPI FlmDbBackup( UD2FBA( (FLMUINT32)uiBlockSize, &pucBlkBuf[ FLM_BACKER_DB_BLOCK_SIZE_OFFSET]); uiMaxFileSize = flmGetMaxFileSize( pFBak->uiDbVersion, - &pFBak->ucDbHeader [DB_LOG_HEADER_START]); + &pFBak->pucDbHeader [DB_LOG_HEADER_START]); UD2FBA( (FLMUINT32)uiMaxFileSize, &pucBlkBuf[ FLM_BACKER_BFMAX_OFFSET]); UD2FBA( (FLMUINT32)FLM_BACKER_MTU_SIZE, @@ -640,7 +649,7 @@ FLMEXP RCODE FLMAPI FlmDbBackup( f_memset( &pucBlkBuf[ uiBlkBufOffset], 0, uiBlockSize); f_memcpy( &pucBlkBuf[ uiBlkBufOffset], - pFBak->ucDbHeader, F_TRANS_HEADER_SIZE); + pFBak->pucDbHeader, F_TRANS_HEADER_SIZE); pLogHdr = &pucBlkBuf[ uiBlkBufOffset + DB_LOG_HEADER_START]; uiBlkBufOffset += uiBlockSize; @@ -1023,11 +1032,11 @@ FLMEXP RCODE FLMAPI FlmDbBackupEnd( else { if( RC_BAD( rc = FlmDbTransBegin( (HFDB)pDb, - FLM_UPDATE_TRANS, FLM_NO_TIMEOUT, pFBak->ucDbHeader))) + FLM_UPDATE_TRANS, FLM_NO_TIMEOUT, pFBak->pucDbHeader))) { goto Exit; } - pLogHdr = &pFBak->ucDbHeader[ DB_LOG_HEADER_START]; + pLogHdr = &pFBak->pucDbHeader[ DB_LOG_HEADER_START]; bStartedTrans = TRUE; } @@ -1110,7 +1119,7 @@ FLMEXP RCODE FLMAPI FlmDbBackupEnd( else { if( RC_BAD( rc = fcsDbTransCommitEx( (HFDB)pDb, TRUE, - pFBak->ucDbHeader))) + pFBak->pucDbHeader))) { goto Exit; } @@ -1143,6 +1152,11 @@ Exit: // Free the backup handle + if( pFBak->pucDbHeader) + { + f_freeAlignedBuffer( &pFBak->pucDbHeader); + } + f_free( &pFBak); // Clear the handle @@ -1531,7 +1545,7 @@ Exit: if (pucDbKey) { - f_free(&pucDbKey); + f_free( &pucDbKey); } if ( pszTempPassword) @@ -1801,18 +1815,13 @@ FSTATIC RCODE flmRestoreFile( } if( RC_BAD( rc = pSFile->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } pSFile->setBlockSize( uiBlockSize); - - // Don't want to do extra file extensions or flush when file - // is extended. - - pSFile->setExtendSize( 0); *ppSFile = pSFile; (*ppSFile)->AddRef(); } diff --git a/flaim/src/flclose.cpp b/flaim/src/flclose.cpp index 60cdaaf..a99368c 100644 --- a/flaim/src/flclose.cpp +++ b/flaim/src/flclose.cpp @@ -142,6 +142,13 @@ Finish_Close: f_semDestroy( &pDb->hWaitSem); } + // Free the read buffer + + if( pDb->pucAlignedReadBuf) + { + f_freeAlignedBuffer( &pDb->pucAlignedReadBuf); + } + // Free the FDB. f_free( phDbRV); diff --git a/flaim/src/flcreate.cpp b/flaim/src/flcreate.cpp index 5ff99b7..e727b45 100644 --- a/flaim/src/flcreate.cpp +++ b/flaim/src/flcreate.cpp @@ -279,8 +279,8 @@ RCODE flmCreateNewFile( } if( RC_BAD( rc = pDb->pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } diff --git a/flaim/src/flindex.cpp b/flaim/src/flindex.cpp index f7a1789..4d88d0d 100644 --- a/flaim/src/flindex.cpp +++ b/flaim/src/flindex.cpp @@ -1452,7 +1452,7 @@ Exit: // Sleep a half second and try again. - f_sleep( 500); + pThread->sleep( 500); goto Loop_Again; } else @@ -1481,7 +1481,7 @@ Exit: break; } - f_sleep( 1000); + pThread->sleep( 1000); } } diff --git a/flaim/src/flopen.cpp b/flaim/src/flopen.cpp index a2e271f..44206d4 100644 --- a/flaim/src/flopen.cpp +++ b/flaim/src/flopen.cpp @@ -304,7 +304,7 @@ Desc: Allocates and initializes an FDB structure for a database which is to be opened or created. ****************************************************************************/ RCODE flmAllocFdb( - FDB * * ppDb) + FDB ** ppDb) { RCODE rc = FERR_OK; FDB * pDb = NULL; @@ -342,9 +342,15 @@ RCODE flmAllocFdb( goto Exit; } + if( RC_BAD( rc = f_allocAlignedBuffer( MAX_BLOCK_SIZE, + &pDb->pucAlignedReadBuf))) + { + goto Exit; + } + // Set up statistics. - if (RC_BAD( rc = flmStatInit( &pDb->Stats, FALSE))) + if( RC_BAD( rc = flmStatInit( &pDb->Stats, FALSE))) { goto Exit; } @@ -633,8 +639,8 @@ RCODE flmOpenFile( } if( RC_BAD( rc = pDb->pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } @@ -1017,8 +1023,8 @@ FSTATIC RCODE flmPhysFileOpen( } if( RC_BAD( rc = pDb->pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } @@ -1557,8 +1563,8 @@ RCODE flmStartCPThread( } if( RC_BAD( rc = pCPInfo->pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, + gv_FlmSysData.uiFileCreateFlags))) { goto Exit; } @@ -1655,9 +1661,9 @@ FSTATIC RCODE FLMAPI flmCPThread( } pThread->setThreadStatus( FLM_THREAD_STATUS_SLEEPING); - while (!bTerminate) + while( !bTerminate) { - f_sleep( 1000); + pThread->sleep( 1000); // See if we should terminate the thread - pointer to // super file handle should be NULL. @@ -2337,7 +2343,7 @@ DoneWithRflSizeEvent:; Exit: - f_sleep( 1000); + pThread->sleep( 1000); } return( FERR_OK); diff --git a/flaim/src/flreduce.cpp b/flaim/src/flreduce.cpp index ec27243..73f15f8 100644 --- a/flaim/src/flreduce.cpp +++ b/flaim/src/flreduce.cpp @@ -43,10 +43,12 @@ FSTATIC RCODE FLRMovePcodeLFHBlk( FSTATIC RCODE FLRFreeAvailBlk( FDB * pDb, + FLMBYTE * pucBlkHeader, FLMUINT uiBlkAddr); FSTATIC RCODE FLRFindPrevAvailBlk( FDB * pDb, + FLMBYTE * pucBlkHeader, FLMUINT * puiBlkAddrRV, FLMBOOL * pbFirstChainFlagRV); @@ -71,7 +73,8 @@ FLMEXP RCODE FLMAPI FlmDbReduceSize( FLMUINT uiBlkAddr; FLMUINT uiNumBlksMoved = 0; FLMUINT uiBlkSize; - FLMBYTE BlkHeader [BH_OVHD + BH_OVHD ]; + FLMUINT uiLogicalFileNum; + FLMBYTE * pucBlkHeader = NULL; FLMINT iType; FLMBOOL bIgnore; FLMBOOL bLoggingWasOff = FALSE; @@ -79,6 +82,11 @@ FLMEXP RCODE FLMAPI FlmDbReduceSize( FLMBOOL bLockedDatabase = FALSE; FLMBOOL bDone = FALSE; + if( RC_BAD( rc = f_allocAlignedBuffer( MAX_BLOCK_SIZE, &pucBlkHeader))) + { + goto Exit; + } + // Lock the database if not already locked. // Cannot lose exclusive access between the checkpoint and // the update transaction that does the truncation. @@ -92,7 +100,7 @@ FLMEXP RCODE FLMAPI FlmDbReduceSize( bLockedDatabase = TRUE; } - if (IsInCSMode( pDb)) + if( IsInCSMode( pDb)) { fdbInitCS( pDb); @@ -173,7 +181,6 @@ Transmission_Error: // Make sure that commit does something. pDb->bHadUpdOper = TRUE; - uiBlkSize = pDb->pFile->FileHdr.uiBlockSize; // Get the logical end of file and use internally. @@ -212,16 +219,18 @@ Transmission_Error: uiBlkAddr = uiLogicalEOF - uiBlkSize; - if (RC_BAD( rc = FLRReadBlkHdr( pDb, uiBlkAddr, BlkHeader, &iType))) + if( RC_BAD( rc = FLRReadBlkHdr( pDb, uiBlkAddr, pucBlkHeader, &iType))) { goto Reduce_Size_Error; } + uiLogicalFileNum = FB2UW( &pucBlkHeader[ BH_LOG_FILE_NUM]); + switch( iType ) { case BHT_FREE: { - rc = FLRFreeAvailBlk( pDb, uiBlkAddr ); + rc = FLRFreeAvailBlk( pDb, pucBlkHeader, uiBlkAddr); break; } @@ -229,8 +238,7 @@ Transmission_Error: case BHT_NON_LEAF: case BHT_NON_LEAF_DATA: { - rc = FLRMoveBtreeBlk( pDb, uiBlkAddr, - FB2UW( &BlkHeader [BH_LOG_FILE_NUM ]), &bDone); + rc = FLRMoveBtreeBlk( pDb, uiBlkAddr, uiLogicalFileNum, &bDone); break; } @@ -362,6 +370,11 @@ Exit: { FlmDbUnlock( hDb); } + + if( pucBlkHeader) + { + f_freeAlignedBuffer( &pucBlkHeader); + } flmExit( FLM_DB_REDUCE_SIZE, pDb, rc); return( rc); @@ -377,10 +390,10 @@ Reduce_Size_Error: Desc: Read the block header and return the type of block it is ****************************************************************************/ FSTATIC RCODE FLRReadBlkHdr( - FDB * pDb, - FLMUINT uiBlkAddress, - FLMBYTE * pucBlockHeader, - FLMINT * piTypeRV ) + FDB * pDb, + FLMUINT uiBlkAddress, + FLMBYTE * pucBlockHeader, + FLMINT * piTypeRV) { RCODE rc = FERR_OK; FLMUINT uiBytesRead; @@ -394,33 +407,34 @@ FSTATIC RCODE FLRReadBlkHdr( // See if first the block is in cache. Previous writes may not have been // forced out to cache. - if (RC_BAD( rc = ScaGetBlock( pDb, NULL, BHT_LEAF, - uiBlkAddress, &uiNumLooks, - &pBlkSCache))) + if( RC_BAD( rc = ScaGetBlock( pDb, NULL, BHT_LEAF, + uiBlkAddress, &uiNumLooks, &pBlkSCache))) { goto Exit; } - if (pBlkSCache) + if( pBlkSCache) { f_memcpy( pucBlockHeader, pBlkSCache->pucBlk, BH_OVHD); ScaReleaseCache( pBlkSCache, FALSE); } else { - if (pDbStats) + if( pDbStats) { ui64ElapTime = 0; f_timeGetTimeStamp( &StartTime); } - rc = pDb->pSFileHdl->readBlock( uiBlkAddress, BH_OVHD, + rc = pDb->pSFileHdl->readBlock( uiBlkAddress, + pDb->pFile->FileHdr.uiBlockSize, pucBlockHeader, &uiBytesRead); - if (pDbStats) + if( pDbStats) { flmAddElapTime( &StartTime, &ui64ElapTime); - if (RC_BAD( rc)) + + if( RC_BAD( rc)) { pDbStats->bHaveStats = TRUE; pDbStats->uiReadErrors++; @@ -432,7 +446,7 @@ FSTATIC RCODE FLRReadBlkHdr( FLMUINT uiBlkType; uiLFileNum = FB2UW( &pucBlockHeader [BH_LOG_FILE_NUM]); - if (!uiLFileNum) + if( !uiLFileNum) { pLFileStats = NULL; uiBlkType = (FLMUINT)BH_GET_TYPE( pucBlockHeader); @@ -1008,11 +1022,11 @@ Desc: Free the input avail block. Link the block out of the free list ****************************************************************************/ FSTATIC RCODE FLRFreeAvailBlk( FDB * pDb, + FLMBYTE * pucBlkHeader, FLMUINT uiBlkAddr) { RCODE rc = FERR_OK; FFILE * pFile = pDb->pFile; - FLMBYTE ucBlkHeader [BH_OVHD]; FLMBYTE * pucBlk; FLMUINT uiPrevBlkAddr; FLMUINT uiNextBlkAddr; @@ -1037,31 +1051,31 @@ FSTATIC RCODE FLRFreeAvailBlk( // Read the block header and get pointers if (RC_BAD( rc = FLRReadBlkHdr( pDb, uiBlkAddr, - ucBlkHeader, (FLMINT *)0 ))) + pucBlkHeader, (FLMINT *)0 ))) { goto Exit; } uiPrevBlkAddr = uiBlkAddr; + uiNextBlkAddr = FB2UD( &pucBlkHeader[ BH_NEXT_BLK]); - if (RC_BAD( rc = FLRFindPrevAvailBlk( pDb, &uiPrevBlkAddr, - &bFirstChainFlag))) + if( pFile->FileHdr.uiVersionNum >= 111) { - goto Exit; - } - - uiNextBlkAddr = FB2UD( &ucBlkHeader [BH_NEXT_BLK]); - if (pFile->FileHdr.uiVersionNum >= 111) - { - uiPbcAddr = ALGetPBC( ucBlkHeader); - uiNbcAddr = ALGetNBC( ucBlkHeader); - flmDecrUint( &pucLogHdr [LOG_PF_NUM_AVAIL_BLKS], 1); + uiPbcAddr = ALGetPBC( pucBlkHeader); + uiNbcAddr = ALGetNBC( pucBlkHeader); + flmDecrUint( &pucLogHdr[ LOG_PF_NUM_AVAIL_BLKS], 1); } else { uiPbcAddr = uiNbcAddr = 0; } + if( RC_BAD( rc = FLRFindPrevAvailBlk( pDb, pucBlkHeader, + &uiPrevBlkAddr, &bFirstChainFlag))) + { + goto Exit; + } + // Check for unexpected error conditions if( (uiPrevBlkAddr == uiBlkAddr) || @@ -1291,11 +1305,11 @@ Desc: Move an avail block out of the avail block list. ****************************************************************************/ FSTATIC RCODE FLRFindPrevAvailBlk( FDB * pDb, + FLMBYTE * pucBlkHeader, FLMUINT * puiBlkAddrRV, FLMBOOL * pbFirstChainFlagRV) { RCODE rc = FERR_OK; - FLMBYTE ucBlkHeader [BH_OVHD ]; FLMUINT uiTargetBlkAddr = *puiBlkAddrRV; FLMUINT uiNextBlkAddr; FLMUINT uiNbcAddr; @@ -1304,37 +1318,37 @@ FSTATIC RCODE FLRFindPrevAvailBlk( *pbFirstChainFlagRV = FALSE; if( RC_BAD( rc = FLRReadBlkHdr( pDb, uiTargetBlkAddr, - ucBlkHeader, (FLMINT *)0 ))) + pucBlkHeader, (FLMINT *)0))) { goto Exit; } - uiNextBlkAddr = FB2UD( &ucBlkHeader [BH_NEXT_BLK]); - if ( uiNextBlkAddr == pDb->LogHdr.uiFirstAvailBlkAddr) + uiNextBlkAddr = FB2UD( &pucBlkHeader[ BH_NEXT_BLK]); + if( uiNextBlkAddr == pDb->LogHdr.uiFirstAvailBlkAddr) { goto Exit; } // Find next chain block - uiNbcAddr = ALGetNBC( ucBlkHeader); + uiNbcAddr = ALGetNBC( pucBlkHeader); - while( (!uiNbcAddr) && ( uiNextBlkAddr != BT_END)) + while( !uiNbcAddr && (uiNextBlkAddr != BT_END)) { if( RC_BAD( rc = FLRReadBlkHdr( pDb, uiNextBlkAddr, - ucBlkHeader, (FLMINT *)0))) + pucBlkHeader, (FLMINT *)0))) { goto Exit; } - if( (uiTempBlkAddr = GET_BH_ADDR( ucBlkHeader)) != uiNextBlkAddr) + if( (uiTempBlkAddr = GET_BH_ADDR( pucBlkHeader)) != uiNextBlkAddr) { rc = RC_SET( FERR_DATA_ERROR); goto Exit; } - uiNbcAddr = ALGetNBC( ucBlkHeader); - uiNextBlkAddr = FB2UD( &ucBlkHeader [BH_NEXT_BLK]); + uiNbcAddr = ALGetNBC( pucBlkHeader); + uiNextBlkAddr = FB2UD( &pucBlkHeader [BH_NEXT_BLK]); } // Now find the previous avail block @@ -1352,18 +1366,18 @@ FSTATIC RCODE FLRFindPrevAvailBlk( while( (uiNextBlkAddr != uiTargetBlkAddr) && (uiNextBlkAddr != BT_END)) { if (RC_BAD( rc = FLRReadBlkHdr( pDb, uiNextBlkAddr, - ucBlkHeader, (FLMINT *)0 ))) + pucBlkHeader, (FLMINT *)0 ))) { goto Exit; } - if( (uiTempBlkAddr = GET_BH_ADDR( ucBlkHeader)) != uiNextBlkAddr) + if( (uiTempBlkAddr = GET_BH_ADDR( pucBlkHeader)) != uiNextBlkAddr) { rc = RC_SET( FERR_DATA_ERROR); goto Exit; } - uiNextBlkAddr = FB2UD( &ucBlkHeader [BH_NEXT_BLK]); + uiNextBlkAddr = FB2UD( &pucBlkHeader [BH_NEXT_BLK]); } *puiBlkAddrRV = uiTempBlkAddr; diff --git a/flaim/src/frebuild.cpp b/flaim/src/frebuild.cpp index 78edf6f..a9c21a2 100644 --- a/flaim/src/frebuild.cpp +++ b/flaim/src/frebuild.cpp @@ -235,8 +235,9 @@ RCODE flmDbRebuildFile( goto Exit; } - if( RC_BAD( rc = f_alloc( pRebuildState->pHdrInfo->FileHdr.uiBlockSize, - &pRebuildState->pBlk))) + if( RC_BAD( rc = f_allocAlignedBuffer( + pRebuildState->pHdrInfo->FileHdr.uiBlockSize, + &pRebuildState->pBlk))) { goto Exit; } @@ -338,7 +339,7 @@ Exit: if (pRebuildState->pBlk) { - f_free( &pRebuildState->pBlk); + f_freeAlignedBuffer( &pRebuildState->pBlk); } if (bStartedTrans) @@ -2464,8 +2465,7 @@ FLMEXP RCODE FLMAPI FlmDbRebuild( } if( RC_BAD( rc = pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, 0))) { goto Exit; } @@ -2735,8 +2735,7 @@ FSTATIC RCODE bldDetermineBlkSize( } if( RC_BAD( rc = pSFileHdl->setup( pSFileClient, - gv_FlmSysData.pFileHdlCache, - (gv_FlmSysData.uiFileOpenFlags & FLM_IO_DIRECT) ? TRUE : FALSE))) + gv_FlmSysData.pFileHdlCache, gv_FlmSysData.uiFileOpenFlags, 0))) { goto Exit; } diff --git a/flaim/src/fstructs.h b/flaim/src/fstructs.h index a9840ae..febeaa2 100644 --- a/flaim/src/fstructs.h +++ b/flaim/src/fstructs.h @@ -1292,6 +1292,7 @@ typedef struct FDB F_SEM hWaitSem; // Semaphore used when waiting to // acquire a file or write lock // on the database + FLMBYTE * pucAlignedReadBuf;// Aligned buffer for block reads #ifdef FLM_DEBUG //NOTE: Always set - no need to be part of memset. @@ -1686,9 +1687,9 @@ typedef struct FBak FLMBOOL bCompletedBackup; FBackupType eBackupType; RCODE backupRc; + FLMBYTE * pucDbHeader; FLMBYTE ucNextIncSerialNum[ F_SERIAL_NUM_SIZE]; FLMBYTE ucDbPath[ F_PATH_MAX_SIZE]; - FLMBYTE ucDbHeader[ F_TRANS_HEADER_SIZE]; } FBak; /**************************************************************************** diff --git a/flaim/src/fsysdata.cpp b/flaim/src/fsysdata.cpp index 1ceafd6..9381d44 100644 --- a/flaim/src/fsysdata.cpp +++ b/flaim/src/fsysdata.cpp @@ -598,7 +598,6 @@ FSTATIC RCODE flmSetCacheLimits( // Can't pre-allocate and dynamically adjust. goto DONT_PREALLOCATE; - } if( RC_BAD( rc = gv_FlmSysData.pSlabManager->resize( @@ -1017,7 +1016,7 @@ Exit: /**************************************************************************** Desc : Deregister our http callback function ****************************************************************************/ -FSTATIC RCODE flmDeregisterHttpCallback() +FSTATIC RCODE flmDeregisterHttpCallback( void) { RCODE rc = FERR_OK; if (!gv_FlmSysData.HttpConfigParms.bRegistered) @@ -3018,7 +3017,7 @@ RCODE FLMAPI flmSystemMonitor( MAX_SESSION_INACTIVE_SECS, FALSE); } - f_sleep( 1000); + pThread->sleep( 1000); } return( FERR_OK); diff --git a/flaim/src/imonchk.cpp b/flaim/src/imonchk.cpp index 9e57796..7d23aab 100644 --- a/flaim/src/imonchk.cpp +++ b/flaim/src/imonchk.cpp @@ -1148,8 +1148,7 @@ Desc: Output the current thread status to the web page. void F_CheckDbPage::getCheckStatus( FLMUINT uiCheckThreadId, FLMBOOL bStopCheck, - CHECK_STATUS * pCheckStatus - ) + CHECK_STATUS * pCheckStatus) { FLMUINT uiThreadId; IF_Thread * pThread = NULL; @@ -1881,7 +1880,7 @@ FSTATIC RCODE FLMAPI imonDoCheck( // Pause one second - f_sleep( 1000); + pThread->sleep( 1000); } Exit: diff --git a/flaim/src/imonix.cpp b/flaim/src/imonix.cpp index 2d381ad..48ddbe9 100644 --- a/flaim/src/imonix.cpp +++ b/flaim/src/imonix.cpp @@ -1520,7 +1520,7 @@ FSTATIC RCODE FLMAPI imonDoIndexList( if (!pIndexListStatus->bIndexListRunning) { - f_sleep( 1000); + pThread->sleep( 1000); continue; } diff --git a/flaim/src/imonsel.cpp b/flaim/src/imonsel.cpp index b421dce..122a876 100644 --- a/flaim/src/imonsel.cpp +++ b/flaim/src/imonsel.cpp @@ -1138,7 +1138,7 @@ FSTATIC RCODE FLMAPI imonDoQuery( if (!pQueryStatus->bQueryRunning) { - f_sleep( 1000); + pThread->sleep( 1000); continue; } diff --git a/flaim/src/rfl.cpp b/flaim/src/rfl.cpp index 60b5a08..f2beac0 100644 --- a/flaim/src/rfl.cpp +++ b/flaim/src/rfl.cpp @@ -811,38 +811,43 @@ RCODE F_Rfl::writeHeader( FLMBOOL bKeepSignature) { RCODE rc = FERR_OK; - FLMBYTE ucBuf [512]; + FLMBYTE * pucBuffer = NULL; FLMUINT uiBytesWritten; flmAssert( m_pFile); flmAssert( m_pFileHdl); - f_memset( ucBuf, 0, sizeof(ucBuf)); - f_memcpy( &ucBuf[RFL_NAME_POS], RFL_NAME, RFL_NAME_LEN); - f_memcpy( &ucBuf[RFL_VERSION_POS], RFL_VERSION, RFL_VERSION_LEN); - UD2FBA( (FLMUINT32) uiFileNum, &ucBuf[RFL_FILE_NUMBER_POS]); - UD2FBA( (FLMUINT32) uiEof, &ucBuf[RFL_EOF_POS]); + if( RC_BAD( rc = f_allocAlignedBuffer( 512, &pucBuffer))) + { + goto Exit; + } + + f_memset( pucBuffer, 0, 512); + f_memcpy( &pucBuffer[ RFL_NAME_POS], RFL_NAME, RFL_NAME_LEN); + f_memcpy( &pucBuffer[ RFL_VERSION_POS], RFL_VERSION, RFL_VERSION_LEN); + + UD2FBA( (FLMUINT32)uiFileNum, &pucBuffer[ RFL_FILE_NUMBER_POS]); + UD2FBA( (FLMUINT32)uiEof, &pucBuffer[ RFL_EOF_POS]); if (m_pFile->FileHdr.uiVersionNum >= FLM_FILE_FORMAT_VER_4_3) { - f_memcpy( &ucBuf[RFL_DB_SERIAL_NUM_POS], + f_memcpy( &pucBuffer[ RFL_DB_SERIAL_NUM_POS], &m_pFile->ucLastCommittedLogHdr[LOG_DB_SERIAL_NUM], F_SERIAL_NUM_SIZE); - f_memcpy( &ucBuf[RFL_SERIAL_NUM_POS], pucSerialNum, F_SERIAL_NUM_SIZE); - f_memcpy( &ucBuf[RFL_NEXT_FILE_SERIAL_NUM_POS], pucNextSerialNum, + f_memcpy( &pucBuffer[ RFL_SERIAL_NUM_POS], pucSerialNum, F_SERIAL_NUM_SIZE); + f_memcpy( &pucBuffer[ RFL_NEXT_FILE_SERIAL_NUM_POS], pucNextSerialNum, F_SERIAL_NUM_SIZE); - f_strcpy( (char *) &ucBuf[RFL_KEEP_SIGNATURE_POS], + f_strcpy( (char *) &pucBuffer[ RFL_KEEP_SIGNATURE_POS], ((bKeepSignature) ? RFL_KEEP_SIGNATURE : RFL_NOKEEP_SIGNATURE)); } // Write out the header - if (RC_BAD( rc = m_pFileHdl->write( 0L, 512, ucBuf, &uiBytesWritten))) + if( RC_BAD( rc = m_pFileHdl->write( 0L, 512, pucBuffer, &uiBytesWritten))) { - // Remap disk full error - if (rc == FERR_IO_DISK_FULL) + if( rc == FERR_IO_DISK_FULL) { rc = RC_SET( FERR_RFL_DEVICE_FULL); m_bRflVolumeFull = TRUE; @@ -854,7 +859,7 @@ RCODE F_Rfl::writeHeader( // Flush the file handle to ensure it is forced to disk. - if (RC_BAD( rc = m_pFileHdl->flush())) + if( RC_BAD( rc = m_pFileHdl->flush())) { // Remap disk full error @@ -871,6 +876,11 @@ RCODE F_Rfl::writeHeader( Exit: + if( pucBuffer) + { + f_freeAlignedBuffer( &pucBuffer); + } + return (rc); } @@ -961,15 +971,20 @@ RCODE F_Rfl::openFile( { RCODE rc = FERR_OK; char szRflFileName[ F_PATH_MAX_SIZE]; - FLMBYTE ucBuf[ 512]; + FLMBYTE * pucBuffer = NULL; FLMUINT uiBytesRead; flmAssert( m_pFile); + if( RC_BAD( rc = f_allocAlignedBuffer( 512, &pucBuffer))) + { + goto Exit; + } + // If we have a file open and it is not the file number passed in, // close it. - if (m_pFileHdl) + if( m_pFileHdl) { if (m_pCurrentBuf->uiCurrFileNum != uiFileNum) { @@ -1016,7 +1031,7 @@ RCODE F_Rfl::openFile( // Read the header. - if (RC_BAD( rc = m_pFileHdl->read( 0, 512, ucBuf, &uiBytesRead))) + if (RC_BAD( rc = m_pFileHdl->read( 0, 512, pucBuffer, &uiBytesRead))) { if (rc == FERR_IO_END_OF_FILE) { @@ -1040,7 +1055,7 @@ RCODE F_Rfl::openFile( // Verify the header information - if (RC_BAD( rc = verifyHeader( ucBuf, uiFileNum, pucSerialNum))) + if (RC_BAD( rc = verifyHeader( pucBuffer, uiFileNum, pucSerialNum))) { goto Exit; } @@ -1051,12 +1066,17 @@ RCODE F_Rfl::openFile( Exit: - if (RC_BAD( rc)) + if( RC_BAD( rc)) { waitForCommit(); closeFile(); } + if( pucBuffer) + { + f_freeAlignedBuffer( &pucBuffer); + } + return (rc); } @@ -6878,10 +6898,10 @@ RCODE F_Rfl::readUnknown( FLMBYTE * pucBuffer, FLMUINT * puiBytesRead) { - RCODE rc = FERR_OK; - FLMUINT uiPacketType; - FLMUINT uiBytesRead = 0; - FLMUINT uiBytesToCopy; + RCODE rc = FERR_OK; + FLMUINT uiPacketType; + FLMUINT uiBytesRead = 0; + FLMUINT uiBytesToCopy; // If we have read through all of the unknown packets, return // FERR_EOF_HIT. diff --git a/flaim/src/scache.cpp b/flaim/src/scache.cpp index 6f72698..e1718a6 100644 --- a/flaim/src/scache.cpp +++ b/flaim/src/scache.cpp @@ -3354,6 +3354,7 @@ FSTATIC RCODE ScaReadTheBlock( DB_STATS * pDbStats = pDb->pDbStats; F_TMSTAMP StartTime; FLMUINT64 ui64ElapMilli; + FLMUINT uiEncryptSize; // We should NEVER be attempting to read a block address that is // beyond the current logical end of file. @@ -3390,8 +3391,8 @@ FSTATIC RCODE ScaReadTheBlock( f_timeGetTimeStamp( &StartTime); } - if (RC_BAD( rc = pDb->pSFileHdl->readBlock( uiFilePos, - uiBlkSize, pucBlk, &uiBytesRead))) + if( RC_BAD( rc = pDb->pSFileHdl->readBlock( uiFilePos, + uiBlkSize, pDb->pucAlignedReadBuf, &uiBytesRead))) { if (pDbStats) { @@ -3412,6 +3413,15 @@ FSTATIC RCODE ScaReadTheBlock( goto Exit; } + uiEncryptSize = (FLMUINT)getEncryptSize( pDb->pucAlignedReadBuf); + if( uiEncryptSize < BH_OVHD || uiEncryptSize > uiBlkSize) + { + rc = RC_SET_AND_ASSERT( FERR_DATA_ERROR); + goto Exit; + } + + f_memcpy( pucBlk, pDb->pucAlignedReadBuf, uiEncryptSize); + #ifdef FLM_DBG_LOG if (uiFilePos != uiBlkAddress) { @@ -7880,23 +7890,24 @@ FSTATIC RCODE scaFinishCheckpoint( // beginning of the next transaction. We don't want to lose // that, so if it is zero, we don't change it. - else if (FB2UD( &pucCommittedLogHdr [LOG_RFL_LAST_TRANS_OFFSET]) != 0) + else if (FB2UD( &pucCommittedLogHdr[ LOG_RFL_LAST_TRANS_OFFSET]) != 0) { - UD2FBA( 512, &pucCommittedLogHdr [LOG_RFL_LAST_TRANS_OFFSET]); + UD2FBA( 512, &pucCommittedLogHdr[ LOG_RFL_LAST_TRANS_OFFSET]); } uiTruncateRflSize = - (FLMUINT)FB2UD( &pucCommittedLogHdr [LOG_RFL_MIN_FILE_SIZE]); + (FLMUINT)FB2UD( &pucCommittedLogHdr[ LOG_RFL_MIN_FILE_SIZE]); if( (uiSaveTransOffset >= (pFile->uiFileExtendSize * 2)) || (uiSaveTransOffset >= uiTruncateRflSize)) { bTruncateRflFile = TRUE; - if (uiTruncateRflSize > (pFile->uiFileExtendSize * 2)) + + if( uiTruncateRflSize > (pFile->uiFileExtendSize * 2)) { uiTruncateRflSize = pFile->uiFileExtendSize; } - else if (uiTruncateRflSize < 512) + else if( uiTruncateRflSize < 512) { uiTruncateRflSize = 512; } @@ -8073,7 +8084,7 @@ FSTATIC RCODE scaFinishCheckpoint( // Truncate the RFL file, if the truncate flag was set above. - if (bTruncateRflFile) + if( bTruncateRflFile) { (void)pFile->pRfl->truncate( uiTruncateRflSize); } @@ -8081,9 +8092,9 @@ FSTATIC RCODE scaFinishCheckpoint( // Truncate the files, if requested to do so - this would be a request of // FlmDbReduceSize. - if (bDoTruncate) + if( bDoTruncate) { - if (RC_BAD( rc = pSFileHdl->truncateFile( + if( RC_BAD( rc = pSFileHdl->truncateFile( (FLMUINT)FB2UD( &pucCommittedLogHdr [LOG_LOGICAL_EOF])))) { goto Exit; @@ -8113,7 +8124,7 @@ FSTATIC RCODE scaFinishCheckpoint( // If we were calculating our maximum dirty cache, finish the // calculation. - if (uiCPStartTime) + if( uiCPStartTime) { FLMUINT uiCPEndTime = FLM_GET_TIMER(); FLMUINT uiCPElapsedTime = FLM_ELAPSED_TIME( uiCPEndTime, uiCPStartTime); @@ -8127,7 +8138,7 @@ FSTATIC RCODE scaFinishCheckpoint( uiElapsedMilli = FLM_TIMER_UNITS_TO_MILLI( uiCPElapsedTime); - if (uiElapsedMilli >= 500) + if( uiElapsedMilli >= 500) { // Calculate what could be written in 15 seconds - set maximum @@ -8138,7 +8149,7 @@ FSTATIC RCODE scaFinishCheckpoint( uiMaximum = (FLMUINT)(((FLMUINT64)uiTotalToWrite * (FLMUINT64)ui15Seconds) / (FLMUINT64)uiCPElapsedTime); - if (uiMaximum) + if( uiMaximum) { // Low is maximum minus what could be written in roughly // two seconds. @@ -8147,13 +8158,13 @@ FSTATIC RCODE scaFinishCheckpoint( // Only set the maximum if we are still in auto-calculate mode. - if (gv_FlmSysData.SCacheMgr.bAutoCalcMaxDirty) + if( gv_FlmSysData.SCacheMgr.bAutoCalcMaxDirty) { f_mutexLock( gv_FlmSysData.hShareMutex); // Test flag again after locking the mutex - if (gv_FlmSysData.SCacheMgr.bAutoCalcMaxDirty) + if( gv_FlmSysData.SCacheMgr.bAutoCalcMaxDirty) { gv_FlmSysData.SCacheMgr.uiMaxDirtyCache = uiMaximum; gv_FlmSysData.SCacheMgr.uiLowDirtyCache = uiLow;