diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-07-29 20:31:07 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2015-07-29 20:31:07 +0200 |
commit | dacd6cee76a08331b8c8616c5f30f70ee49aa2f9 (patch) | |
tree | 7a7d73f2ac1f909255361781ca923365b6c9b7c3 /src/journal/catalog.c | |
parent | 8388607b5851574e50a6e65db98135b793b08910 (diff) |
tree-wide: port everything over to fflush_and_check()
Some places invoked fflush() directly with their own manual error
checking, let's unify all that by using fflush_and_check().
This also unifies the general error paths of fflush()+rename() file
writers.
Diffstat (limited to 'src/journal/catalog.c')
-rw-r--r-- | src/journal/catalog.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/journal/catalog.c b/src/journal/catalog.c index 0801e13599..33b0539315 100644 --- a/src/journal/catalog.c +++ b/src/journal/catalog.c @@ -371,25 +371,23 @@ static long write_catalog(const char *database, Hashmap *h, struct strbuf *sb, goto error; } - fflush(w); - - if (ferror(w)) { - log_error("%s: failed to write database.", p); + r = fflush_and_check(w); + if (r < 0) { + log_error_errno(r, "%s: failed to write database: %m", p); goto error; } fchmod(fileno(w), 0644); if (rename(p, database) < 0) { - log_error_errno(errno, "rename (%s -> %s) failed: %m", p, database); - r = -errno; + r = log_error_errno(errno, "rename (%s -> %s) failed: %m", p, database); goto error; } return ftell(w); error: - unlink(p); + (void) unlink(p); return r; } |