Chromium Code Reviews| Index: third_party/leveldatabase/env_chromium.cc |
| diff --git a/third_party/leveldatabase/env_chromium.cc b/third_party/leveldatabase/env_chromium.cc |
| index 0333380fd2f3e6ac0dff4318b52eda1b0445144c..562929b8482ad52f28d8dba8db4cabafa68a5c5c 100644 |
| --- a/third_party/leveldatabase/env_chromium.cc |
| +++ b/third_party/leveldatabase/env_chromium.cc |
| @@ -68,6 +68,8 @@ int fflush_wrapper(FILE *file) { |
| int fdatasync(int fildes) { |
| #if defined(OS_WIN) |
| return _commit(fildes); |
| +#elif defined(OS_MACOSX) |
| + return HANDLE_EINTR(fcntl(fildes, F_FULLFSYNC, 0)); |
|
jsbell
2013/09/04 23:59:34
Can fcntl() produce an EINTR error on MacOS with F
dgrogan
2013/09/05 00:01:32
Yeah, I added it just in case the man page was inc
|
| #else |
| return HANDLE_EINTR(fsync(fildes)); |
| #endif |
| @@ -510,7 +512,7 @@ Status ChromiumWritableFile::Sync() { |
| error = errno; |
| // Sync even if fflush gave an error; perhaps the data actually got out, |
| // even though something went wrong. |
| - if (fdatasync(fileno(file_)) && !error) |
| + if (fdatasync(fileno(file_)) == -1 && !error) |
|
jsbell
2013/09/04 23:59:34
Nice catch.
|
| error = errno; |
| // Report the first error we found. |
| if (error) { |