diff options
Diffstat (limited to 'src/FileAllocationEntry.cc')
| -rw-r--r-- | src/FileAllocationEntry.cc | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/FileAllocationEntry.cc b/src/FileAllocationEntry.cc index af9c67c1..5bc39ee9 100644 --- a/src/FileAllocationEntry.cc +++ b/src/FileAllocationEntry.cc @@ -38,13 +38,24 @@ #include "RequestGroup.h" #include "PieceStorage.h" #include "DiskAdaptor.h" +#include "prefs.h" +#include "Option.h" FileAllocationEntry::FileAllocationEntry(RequestGroup* requestGroup, Command* nextCommand): RequestGroupEntry(requestGroup, nextCommand), _fileAllocationIterator(requestGroup->getPieceStorage()->getDiskAdaptor()->fileAllocationIterator()) -{} +{ + if(_requestGroup->getOption()->getAsBool(PREF_ENABLE_DIRECT_IO)) { + _requestGroup->getPieceStorage()->getDiskAdaptor()->enableDirectIO(); + } +} -FileAllocationEntry:: ~FileAllocationEntry() {} +FileAllocationEntry:: ~FileAllocationEntry() +{ + if(_requestGroup->getOption()->getAsBool(PREF_ENABLE_DIRECT_IO)) { + _requestGroup->getPieceStorage()->getDiskAdaptor()->disableDirectIO(); + } +} int64_t FileAllocationEntry::getCurrentLength() { |
