From 2c3565285e37058df6056ed38d28fb2efcf44c8d Mon Sep 17 00:00:00 2001 From: Chip Turner Date: Mon, 28 Jan 2013 11:18:50 -0800 Subject: [PATCH] Add OS_LINUX ifdef protections around fallocate parts Summary: fallocate is linux only, so let's protect it with ifdef's Test Plan: make Reviewers: sheki, dhruba Reviewed By: dhruba CC: leveldb Differential Revision: https://reviews.facebook.net/D8223 --- util/env_posix.cc | 4 ++++ util/posix_logger.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/util/env_posix.cc b/util/env_posix.cc index 68cabff69..eebf2e66b 100644 --- a/util/env_posix.cc +++ b/util/env_posix.cc @@ -332,6 +332,7 @@ class PosixMmapFile : public WritableFile { return file_offset_ + used; } +#ifdef OS_LINUX virtual Status Allocate(off_t offset, off_t len) { if (!fallocate(fd_, FALLOC_FL_KEEP_SIZE, offset, len)) { return Status::OK(); @@ -339,6 +340,7 @@ class PosixMmapFile : public WritableFile { return IOError(filename_, errno); } } +#endif }; // Use posix write to write data to a file. @@ -466,6 +468,7 @@ class PosixWritableFile : public WritableFile { return filesize_; } +#ifdef OS_LINUX virtual Status Allocate(off_t offset, off_t len) { if (!fallocate(fd_, FALLOC_FL_KEEP_SIZE, offset, len)) { return Status::OK(); @@ -473,6 +476,7 @@ class PosixWritableFile : public WritableFile { return IOError(filename_, errno); } } +#endif }; static int LockOrUnlock(const std::string& fname, int fd, bool lock) { diff --git a/util/posix_logger.h b/util/posix_logger.h index bb2518ae0..5443c7733 100644 --- a/util/posix_logger.h +++ b/util/posix_logger.h @@ -14,7 +14,9 @@ #include #include #include +#ifdef OS_LINUX #include +#endif #include "leveldb/env.h" namespace leveldb { @@ -93,6 +95,7 @@ class PosixLogger : public Logger { assert(p <= limit); +#ifdef OS_LINUX // If this write would cross a boundary of kDebugLogChunkSize // space, pre-allocate more space to avoid overly large // allocations from filesystem allocsize options. @@ -106,6 +109,7 @@ class PosixLogger : public Logger { fallocate(fd_, FALLOC_FL_KEEP_SIZE, 0, desired_allocation_chunk * kDebugLogChunkSize); } +#endif fwrite(base, 1, write_size, file_); fflush(file_);