Signed-off-by: Sage Weil <sage@redhat.com>
}
return r < 0 ? r : 0;
}
+
+int BlockDevice::invalidate_cache(uint64_t off, uint64_t len)
+{
+ dout(5) << __func__ << " " << off << "~" << len << dendl;
+ assert(off % block_size == 0);
+ assert(len % block_size == 0);
+ int r = posix_fadvise(fd_buffered, off, len, POSIX_FADV_DONTNEED);
+ if (r < 0) {
+ r = -errno;
+ derr << __func__ << " " << off << "~" << len << " error: "
+ << cpp_strerror(r) << dendl;
+ }
+ return r;
+}
IOContext *ioc);
int flush();
+ // for managing buffered readers/writers
+ int invalidate_cache(uint64_t off, uint64_t len);
int open(string path);
void close();
};