From 68579bd2f4284ba9128cb972f8edaace03d466e5 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 6 Dec 2007 12:32:27 +0000 Subject: 2007-12-06 Tatsuhiro Tsujikawa Changed Direct/IO enable/disable procesure in file allocation routine. * src/SingleFileAllocationIterator.cc (SingleFileAllocationIterator): Disable directIO if offset is not multiple of 512. (~SingleFileAllocationIterator): Removed a call to disableDirectIO. * src/MultiFileAllocationIterator.cc (allocateChunk): Enable created SingleFileAllocationIterator's directIO. * src/FileAllocationEntry.cc (FileAllocationEntry): Enable directIO here. (~FileAllocationEntry): Disable directIO here. --- src/SingleFileAllocationIterator.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/SingleFileAllocationIterator.cc') diff --git a/src/SingleFileAllocationIterator.cc b/src/SingleFileAllocationIterator.cc index ae6d513e..e71e16eb 100644 --- a/src/SingleFileAllocationIterator.cc +++ b/src/SingleFileAllocationIterator.cc @@ -38,24 +38,24 @@ #include "a2io.h" #define BUFSIZE (256*1024) +#define ALIGNMENT 512 SingleFileAllocationIterator::SingleFileAllocationIterator(BinaryStream* stream, int64_t offset, int64_t totalLength):_stream(stream), _offset(offset), _totalLength(totalLength), _buffer(0) { - if(_offset%512 == 0) { - _stream->enableDirectIO(); + if(_offset%ALIGNMENT != 0) { + _stream->disableDirectIO(); } } SingleFileAllocationIterator::~SingleFileAllocationIterator() { delete [] _buffer; - _stream->disableDirectIO(); } void SingleFileAllocationIterator::init() { #ifdef HAVE_POSIX_MEMALIGN - _buffer = (unsigned char*)Util::allocateAlignedMemory(512, BUFSIZE); + _buffer = (unsigned char*)Util::allocateAlignedMemory(ALIGNMENT, BUFSIZE); #else _buffer = new unsigned char[BUFSIZE]; #endif // HAVE_POSIX_MEMALIGN -- cgit