summaryrefslogtreecommitdiff
path: root/scheduler/file.c
diff options
context:
space:
mode:
authorDidier Raboud <odyx@debian.org>2014-01-02 23:05:18 +0100
committerDidier Raboud <odyx@debian.org>2014-01-02 23:05:18 +0100
commitb4db6beca042dcbfd5530ef8c559bfab71a11ade (patch)
treea2d41ae625d277d3285167fc64b73b58bc010065 /scheduler/file.c
parentd13746555c30d1d1bd617dcf64d5b92e319ae2b5 (diff)
downloadcups-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.c27
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 $".
*/