diff --git a/util/env_posix.cc b/util/env_posix.cc index 4935e47f8..bce9526a6 100644 --- a/util/env_posix.cc +++ b/util/env_posix.cc @@ -174,10 +174,10 @@ class PosixSequentialFile: public SequentialFile { virtual Status Read(size_t n, Slice* result, char* scratch) { Status s; - size_t r = -1; + size_t r = 0; do { r = fread_unlocked(scratch, 1, n, file_); - } while (r < 0 && errno == EINTR); + } while (r == 0 && ferror(file_) && errno == EINTR); *result = Slice(scratch, r); if (r < n) { if (feof(file_)) {