diff options
author | Didier Raboud <odyx@debian.org> | 2014-01-02 23:05:18 +0100 |
---|---|---|
committer | Didier Raboud <odyx@debian.org> | 2014-01-02 23:05:18 +0100 |
commit | b4db6beca042dcbfd5530ef8c559bfab71a11ade (patch) | |
tree | a2d41ae625d277d3285167fc64b73b58bc010065 /scheduler/file.c | |
parent | d13746555c30d1d1bd617dcf64d5b92e319ae2b5 (diff) | |
download | cups-upstream/1.7.0.tar.gz |
Imported Upstream version 1.7.0upstream/1.7.0
Diffstat (limited to 'scheduler/file.c')
-rw-r--r-- | scheduler/file.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/scheduler/file.c b/scheduler/file.c index 75df6a18..1d252905 100644 --- a/scheduler/file.c +++ b/scheduler/file.c @@ -1,5 +1,5 @@ /* - * "$Id: file.c 4216 2013-03-11 13:57:36Z msweet $" + * "$Id: file.c 11201 2013-07-26 21:27:27Z msweet $" * * File functions for the CUPS scheduler. * @@ -109,6 +109,29 @@ cupsdCloseCreatedConfFile( /* + * Synchronize changes to disk if SyncOnClose is enabled. + */ + + if (SyncOnClose) + { + if (cupsFileFlush(fp)) + { + cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to write changes to \"%s\": %s", + filename, strerror(errno)); + cupsFileClose(fp); + return (-1); + } + + if (fsync(cupsFileNumber(fp))) + { + cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to sync changes to \"%s\": %s", + filename, strerror(errno)); + cupsFileClose(fp); + return (-1); + } + } + + /* * First close the file... */ @@ -438,5 +461,5 @@ overwrite_data(int fd, /* I - File descriptor */ /* - * End of "$Id: file.c 4216 2013-03-11 13:57:36Z msweet $". + * End of "$Id: file.c 11201 2013-07-26 21:27:27Z msweet $". */ |