[ovs-dev] [PATCH] Switch ovsdb log fsync to data only
anton.ivanov at cambridgegreys.com
anton.ivanov at cambridgegreys.com
Tue Apr 21 08:23:57 UTC 2020
From: Anton Ivanov <anton.ivanov at cambridgegreys.com>
We do not check metadata - mtime, atime, anywhere, so we
do not need to update it every time we sync the log.
if the system supports it, the log update should be
data only
Signed-off-by: Anton Ivanov <anton.ivanov at cambridgegreys.com>
---
ovsdb/log.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/ovsdb/log.c b/ovsdb/log.c
index c82a79c9f..41af77679 100644
--- a/ovsdb/log.c
+++ b/ovsdb/log.c
@@ -658,7 +658,16 @@ ovsdb_log_write_and_free(struct ovsdb_log *log, struct json *json)
struct ovsdb_error *
ovsdb_log_commit_block(struct ovsdb_log *file)
{
+#if (_POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500)
+ /* we do not check metadata - mtime, atime, anywhere, so we
+ * do not need to update it every time we sync the log.
+ * if the system supports it, the log update should be
+ * data only
+ */
+ if (file->stream && fdatasync(fileno(file->stream))) {
+#else
if (file->stream && fsync(fileno(file->stream))) {
+#endif
return ovsdb_io_error(errno, "%s: fsync failed", file->display_name);
}
return NULL;
--
2.20.1
More information about the dev
mailing list