summaryrefslogtreecommitdiff
path: root/src/AbstractSingleDiskAdaptor.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-07-01 23:50:17 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2014-07-02 00:05:43 +0900
commit8750d7be99be5b59aef460e1e70519986ba50564 (patch)
treef3fd051408b4068d94ee2daa9de63edd5d8b3f7b /src/AbstractSingleDiskAdaptor.cc
parent0b6501043a88dedd3936dce4b10bacd96e63909b (diff)
Disard cache when checking checksum
This will slow down checksum checking but does not thrash cache.
Diffstat (limited to 'src/AbstractSingleDiskAdaptor.cc')
-rw-r--r--src/AbstractSingleDiskAdaptor.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/AbstractSingleDiskAdaptor.cc b/src/AbstractSingleDiskAdaptor.cc
index c3a2ba0c..974af822 100644
--- a/src/AbstractSingleDiskAdaptor.cc
+++ b/src/AbstractSingleDiskAdaptor.cc
@@ -83,6 +83,18 @@ ssize_t AbstractSingleDiskAdaptor::readData
return diskWriter_->readData(data, len, offset);
}
+ssize_t AbstractSingleDiskAdaptor::readDataDropCache
+(unsigned char* data, size_t len, int64_t offset)
+{
+ auto rv = readData(data, len, offset);
+
+ if(rv > 0) {
+ diskWriter_->dropCache(len, offset);
+ }
+
+ return rv;
+}
+
void AbstractSingleDiskAdaptor::writeCache(const WrDiskCacheEntry* entry)
{
// Write cached data in 4KiB aligned offset. This reduces disk