[ostree] bootconfig: Add ostree_bootconfig_parser_write_at
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] bootconfig: Add ostree_bootconfig_parser_write_at
- Date: Sat, 19 Dec 2015 13:39:38 +0000 (UTC)
commit 3a4f90cf8e30284f336918ffb0c3bd56f4cb3fde
Author: Colin Walters <walters verbum org>
Date: Mon Apr 20 22:23:39 2015 -0400
bootconfig: Add ostree_bootconfig_parser_write_at
This fd-relative API will be used by later libostree porting in the
deploy code path.
src/libostree/ostree-bootconfig-parser.c | 34 +++++++++++++++++++----------
src/libostree/ostree-bootconfig-parser.h | 6 +++++
2 files changed, 28 insertions(+), 12 deletions(-)
---
diff --git a/src/libostree/ostree-bootconfig-parser.c b/src/libostree/ostree-bootconfig-parser.c
index 6320b5b..661e759 100644
--- a/src/libostree/ostree-bootconfig-parser.c
+++ b/src/libostree/ostree-bootconfig-parser.c
@@ -158,18 +158,18 @@ write_key (OstreeBootconfigParser *self,
g_string_append (buf, value);
g_string_append_c (buf, '\n');
}
-
+
gboolean
-ostree_bootconfig_parser_write (OstreeBootconfigParser *self,
- GFile *output,
- GCancellable *cancellable,
- GError **error)
+ostree_bootconfig_parser_write_at (OstreeBootconfigParser *self,
+ int dfd,
+ const char *path,
+ GCancellable *cancellable,
+ GError **error)
{
gboolean ret = FALSE;
GHashTableIter hashiter;
gpointer hashkey, hashvalue;
GString *buf = g_string_new ("");
- g_autoptr(GBytes) bytes = NULL;
guint i;
g_autoptr(GHashTable) written_overrides = NULL;
@@ -205,18 +205,28 @@ ostree_bootconfig_parser_write (OstreeBootconfigParser *self,
write_key (self, buf, hashkey, hashvalue);
}
- bytes = g_string_free_to_bytes (buf);
- buf = NULL;
-
- if (!ot_gfile_replace_contents_fsync (output, bytes,
- cancellable, error))
+ if (!glnx_file_replace_contents_at (dfd, path, (guint8*)buf->str, buf->len,
+ GLNX_FILE_REPLACE_NODATASYNC,
+ cancellable, error))
goto out;
ret = TRUE;
out:
- if (buf) g_string_free (buf, TRUE);
+ if (buf)
+ g_string_free (buf, TRUE);
return ret;
}
+
+gboolean
+ostree_bootconfig_parser_write (OstreeBootconfigParser *self,
+ GFile *output,
+ GCancellable *cancellable,
+ GError **error)
+{
+ return ostree_bootconfig_parser_write_at (self,
+ AT_FDCWD, gs_file_get_path_cached (output),
+ cancellable, error);
+}
static void
ostree_bootconfig_parser_finalize (GObject *object)
diff --git a/src/libostree/ostree-bootconfig-parser.h b/src/libostree/ostree-bootconfig-parser.h
index 7ff2235..47dac9c 100644
--- a/src/libostree/ostree-bootconfig-parser.h
+++ b/src/libostree/ostree-bootconfig-parser.h
@@ -52,6 +52,12 @@ gboolean ostree_bootconfig_parser_write (OstreeBootconfigParser *self,
GCancellable *cancellable,
GError **error);
+gboolean ostree_bootconfig_parser_write_at (OstreeBootconfigParser *self,
+ int dfd,
+ const char *path,
+ GCancellable *cancellable,
+ GError **error);
+
void ostree_bootconfig_parser_set (OstreeBootconfigParser *self,
const char *key,
const char *value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]