diff --git a/src/libostree/ostree-repo-private.h b/src/libostree/ostree-repo-private.h index 8b07254c..ceed4711 100644 --- a/src/libostree/ostree-repo-private.h +++ b/src/libostree/ostree-repo-private.h @@ -126,6 +126,15 @@ _ostree_repo_update_refs (OstreeRepo *self, GCancellable *cancellable, GError **error); +gboolean +_ostree_repo_file_replace_contents (OstreeRepo *self, + int dfd, + const char *path, + guint8 *buf, + gsize len, + GCancellable *cancellable, + GError **error); + gboolean _ostree_repo_write_ref (OstreeRepo *self, const char *remote, diff --git a/src/libostree/ostree-repo-refs.c b/src/libostree/ostree-repo-refs.c index a436e042..ee6db8ac 100644 --- a/src/libostree/ostree-repo-refs.c +++ b/src/libostree/ostree-repo-refs.c @@ -106,9 +106,8 @@ write_checksum_file_at (OstreeRepo *self, bufnl[l] = '\n'; bufnl[l+1] = '\0'; - if (!glnx_file_replace_contents_at (dfd, name, (guint8*)bufnl, l + 1, - self->disable_fsync ? GLNX_FILE_REPLACE_NODATASYNC : GLNX_FILE_REPLACE_DATASYNC_NEW, - cancellable, error)) + if (!_ostree_repo_file_replace_contents (self, dfd, name, (guint8*)bufnl, l + 1, + cancellable, error)) goto out; } diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 072ae765..b27fcce8 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -1502,6 +1502,23 @@ ostree_repo_set_disable_fsync (OstreeRepo *self, } +/* Replace the contents of a file, honoring the repository's fsync + * policy. + */ +gboolean +_ostree_repo_file_replace_contents (OstreeRepo *self, + int dfd, + const char *path, + guint8 *buf, + gsize len, + GCancellable *cancellable, + GError **error) +{ + return glnx_file_replace_contents_at (dfd, path, buf, len, + self->disable_fsync ? GLNX_FILE_REPLACE_NODATASYNC : GLNX_FILE_REPLACE_DATASYNC_NEW, + cancellable, error); +} + /** * ostree_repo_get_path: * @self: