From 72fc1e9d07cf967555235fe9cca436a2f93d3fe4 Mon Sep 17 00:00:00 2001 From: Nikhil Benesch Date: Fri, 7 Apr 2017 10:26:19 -0700 Subject: [PATCH] avoid non-existent O_DIRECT on OpenBSD Summary: OpenBSD doesn't have `O_DIRECT`, so avoid it. (RocksDB compiles successfully on OpenBSD with this patch.) Closes https://github.com/facebook/rocksdb/pull/2106 Differential Revision: D4847833 Pulled By: siying fbshipit-source-id: 214b785 --- env/env_posix.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/env/env_posix.cc b/env/env_posix.cc index 2d1e6cb69..02f82e92e 100644 --- a/env/env_posix.cc +++ b/env/env_posix.cc @@ -159,7 +159,7 @@ class PosixEnv : public Env { #ifdef ROCKSDB_LITE return Status::IOError(fname, "Direct I/O not supported in RocksDB lite"); #endif // !ROCKSDB_LITE -#ifndef OS_MACOSX +#if !defined(OS_MACOSX) && !defined(OS_OPENBSD) flags |= O_DIRECT; #endif } @@ -206,7 +206,7 @@ class PosixEnv : public Env { #ifdef ROCKSDB_LITE return Status::IOError(fname, "Direct I/O not supported in RocksDB lite"); #endif // !ROCKSDB_LITE -#ifndef OS_MACOSX +#if !defined(OS_MACOSX) && !defined(OS_OPENBSD) flags |= O_DIRECT; TEST_SYNC_POINT_CALLBACK("NewRandomAccessFile:O_DIRECT", &flags); #endif @@ -271,7 +271,7 @@ class PosixEnv : public Env { return Status::IOError(fname, "Direct I/O not supported in RocksDB lite"); #endif // ROCKSDB_LITE flags |= O_WRONLY; -#ifndef OS_MACOSX +#if !defined(OS_MACOSX) && !defined(OS_OPENBSD) flags |= O_DIRECT; #endif TEST_SYNC_POINT_CALLBACK("NewWritableFile:O_DIRECT", &flags); @@ -338,7 +338,7 @@ class PosixEnv : public Env { return Status::IOError(fname, "Direct I/O not supported in RocksDB lite"); #endif // !ROCKSDB_LITE flags |= O_WRONLY; -#ifndef OS_MACOSX +#if !defined(OS_MACOSX) && !defined(OS_OPENBSD) flags |= O_DIRECT; #endif TEST_SYNC_POINT_CALLBACK("NewWritableFile:O_DIRECT", &flags);