Skip to content
Snippets Groups Projects
Commit f96e6668 authored by Moe Jette's avatar Moe Jette
Browse files

tweak logic to log every fsync/close error

parent b6a3b704
No related branches found
No related tags found
No related merge requests found
...@@ -61,23 +61,27 @@ static bool run_save_thread = true; ...@@ -61,23 +61,27 @@ static bool run_save_thread = true;
* RET 0 on success or -1 on error */ * RET 0 on success or -1 on error */
extern int fsync_and_close(int fd, char *file_type) extern int fsync_and_close(int fd, char *file_type)
{ {
int rc = 0; int rc = 0, retval, pos;
int retval;
while ((retval = fsync(fd)) && (errno == EINTR)) for (retval = 1, pos = 1; retval && pos < 4; pos++) {
; retval = fsync(fd);
if (retval != 0) { if (retval && (errno != EINTR)) {
rc = retval; error("fsync() error writing %s state save file: %m",
error("fsync() error writing %s state save file: %m", file_type);
file_type); }
} }
if (retval)
while ((retval = close(fd)) && (errno == EINTR))
;
if (retval != 0) {
rc = retval; rc = retval;
error("close () error on %s state save file: %m", file_type);
for (retval = 1, pos = 1; retval && pos < 4; pos++) {
retval = close(fd);
if (retval && (errno != EINTR)) {
error("close () error on %s state save file: %m",
file_type);
}
} }
if (retval)
rc = retval;
return rc; return rc;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment