diff --git a/src/libgsystem b/src/libgsystem index b11ad335..6c736d93 160000 --- a/src/libgsystem +++ b/src/libgsystem @@ -1 +1 @@ -Subproject commit b11ad335f459e3c61b317308da57de441660efd0 +Subproject commit 6c736d9309d5ffbc60ed0a58e21f0f8ad609ba10 diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index e0c7ab68..ef49636c 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -742,37 +742,6 @@ ostree_repo_get_archive_content_path (OstreeRepo *self, return g_file_resolve_relative_path (self->repodir, path); } -/** - * ensure_file_data_synced: - * - * Ensure that in case of a power cut, these files have the data we - * want. See http://lwn.net/Articles/322823/ - */ -static gboolean -ensure_file_data_synced (GFile *file, - GCancellable *cancellable, - GError **error) -{ - gboolean ret = FALSE; - int fd = -1; - - if (!ot_unix_open_noatime (gs_file_get_path_cached (file), &fd, error)) - goto out; - - if (!ot_unix_fdatasync (fd, error)) - goto out; - - if (!ot_unix_close (fd, error)) - goto out; - fd = -1; - - ret = TRUE; - out: - if (fd != -1) - (void) close (fd); - return ret; -} - static gboolean commit_loose_object_impl (OstreeRepo *self, GFile *tempfile_path, @@ -790,7 +759,10 @@ commit_loose_object_impl (OstreeRepo *self, if (is_regular) { - if (!ensure_file_data_synced (tempfile_path, cancellable, error)) + /* Ensure that in case of a power cut, these files have the data we + * want. See http://lwn.net/Articles/322823/ + */ + if (!gs_file_sync_data (tempfile_path, cancellable, error)) goto out; } @@ -3159,7 +3131,7 @@ checkout_file_from_input (GFile *file, if (g_file_info_get_file_type (temp_info) == G_FILE_TYPE_REGULAR) { - if (!ensure_file_data_synced (temp_file, cancellable, error)) + if (!gs_file_sync_data (temp_file, cancellable, error)) goto out; } @@ -3178,7 +3150,7 @@ checkout_file_from_input (GFile *file, if (g_file_info_get_file_type (temp_info) == G_FILE_TYPE_REGULAR) { - if (!ensure_file_data_synced (file, cancellable, error)) + if (!gs_file_sync_data (file, cancellable, error)) goto out; } } diff --git a/src/libotutil/ot-unix-utils.c b/src/libotutil/ot-unix-utils.c index 3b0645f9..d4793019 100644 --- a/src/libotutil/ot-unix-utils.c +++ b/src/libotutil/ot-unix-utils.c @@ -190,26 +190,6 @@ ot_util_fatal_gerror (GError *error) ot_util_fatal_literal (error->message); } -/** - * ot_unix_fdatasync: - * - * Like fdatasync(), but uses #GError, and handles EINTR. - */ -gboolean -ot_unix_fdatasync (int fd, GError **error) -{ - int result; - do - result = fdatasync (fd); - while (G_UNLIKELY (result != 0 && errno == EINTR)); - if (result != 0) - { - ot_util_set_error_from_errno (error, errno); - return FALSE; - } - return TRUE; -} - /** * ot_unix_close: * diff --git a/src/libotutil/ot-unix-utils.h b/src/libotutil/ot-unix-utils.h index 18f07494..9a8c3ac6 100644 --- a/src/libotutil/ot-unix-utils.h +++ b/src/libotutil/ot-unix-utils.h @@ -55,8 +55,6 @@ gboolean ot_unix_open (const char *path, int *out_fd, GError **error); -gboolean ot_unix_fdatasync (int fd, GError **error); - gboolean ot_unix_close (int fd, GError **error); gboolean ot_unix_open_noatime (const char *path, int *out_fd, GError **error);