diff --git a/util/file_reader_writer.cc b/util/file_reader_writer.cc index dcf72531c..5e8e8d631 100644 --- a/util/file_reader_writer.cc +++ b/util/file_reader_writer.cc @@ -184,11 +184,14 @@ Status WritableFileWriter::Close() { s = Flush(); // flush cache to OS + Status interim; // In direct I/O mode we write whole pages so // we need to let the file know where data ends. - Status interim = writable_file_->Truncate(filesize_); - if (!interim.ok() && s.ok()) { - s = interim; + if (use_direct_io()) { + interim = writable_file_->Truncate(filesize_); + if (!interim.ok() && s.ok()) { + s = interim; + } } TEST_KILL_RANDOM("WritableFileWriter::Close:0", rocksdb_kill_odds);