diff --git a/env/env_posix.cc b/env/env_posix.cc index 660b3cf07..e04eb5bf4 100644 --- a/env/env_posix.cc +++ b/env/env_posix.cc @@ -241,9 +241,9 @@ class PosixEnv : public Env { size, options)); } else { s = IOError("while mmap file for read", fname, errno); + close(fd); } } - close(fd); } else { if (options.use_direct_reads && !options.use_mmap_reads) { #ifdef OS_MACOSX diff --git a/env/io_posix.cc b/env/io_posix.cc index 0e067b4e8..216fc897e 100644 --- a/env/io_posix.cc +++ b/env/io_posix.cc @@ -456,6 +456,7 @@ PosixMmapReadableFile::~PosixMmapReadableFile() { fprintf(stdout, "failed to munmap %p length %" ROCKSDB_PRIszt " \n", mmapped_region_, length_); } + close(fd_); } Status PosixMmapReadableFile::Read(uint64_t offset, size_t n, Slice* result,