From cd5fce713ca4056d8e1ef72004ca3c0035b7ad0c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 4 Jan 2013 19:46:02 -0500 Subject: [PATCH] core: Reuse more libgsystem API in utils More code drain to libgsystem. --- src/libgsystem | 2 +- src/libotutil/ot-unix-utils.c | 46 -------------------------------- src/libotutil/ot-unix-utils.h | 2 -- src/libotutil/ot-variant-utils.c | 9 +------ 4 files changed, 2 insertions(+), 57 deletions(-) diff --git a/src/libgsystem b/src/libgsystem index ce441a7a..a2519612 160000 --- a/src/libgsystem +++ b/src/libgsystem @@ -1 +1 @@ -Subproject commit ce441a7a7bd987265588674a11d62965e81bdf94 +Subproject commit a2519612547354033f0d513a174f336896776fa8 diff --git a/src/libotutil/ot-unix-utils.c b/src/libotutil/ot-unix-utils.c index d4793019..032b497a 100644 --- a/src/libotutil/ot-unix-utils.c +++ b/src/libotutil/ot-unix-utils.c @@ -189,49 +189,3 @@ ot_util_fatal_gerror (GError *error) g_assert (error != NULL); ot_util_fatal_literal (error->message); } - -/** - * ot_unix_close: - * - * Like close(), but uses #GError, and handles EINTR. - */ -gboolean -ot_unix_close (int fd, GError **error) -{ - int result; - do - result = close (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_open_noatime: - * - * Open a file for reading, using O_NOATIME if possible. - */ -gboolean -ot_unix_open_noatime (const char *path, - int *out_fd, - GError **error) -{ - int fd; - -#ifdef O_NOATIME - fd = g_open (path, O_RDONLY | O_NOATIME | O_CLOEXEC, 0); - if (fd == -1 && errno == EPERM) -#endif - fd = g_open (path, O_RDONLY | O_CLOEXEC, 0); - if (fd == -1) - { - ot_util_set_error_from_errno (error, errno); - return FALSE; - } - *out_fd = fd; - return TRUE; -} diff --git a/src/libotutil/ot-unix-utils.h b/src/libotutil/ot-unix-utils.h index 9a8c3ac6..e0546a37 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_close (int fd, GError **error); - gboolean ot_unix_open_noatime (const char *path, int *out_fd, GError **error); G_END_DECLS diff --git a/src/libotutil/ot-variant-utils.c b/src/libotutil/ot-variant-utils.c index caa39ea6..31d01b52 100644 --- a/src/libotutil/ot-variant-utils.c +++ b/src/libotutil/ot-variant-utils.c @@ -109,19 +109,12 @@ ot_util_variant_map (GFile *src, GError **error) { gboolean ret = FALSE; - const char *path = NULL; ot_lvariant GVariant *ret_variant = NULL; GMappedFile *mfile = NULL; - int fd; - path = gs_file_get_path_cached (src); - if (!ot_unix_open_noatime (path, &fd, error)) - goto out; - mfile = g_mapped_file_new_from_fd (fd, FALSE, error); + mfile = gs_file_map_noatime (src, NULL, error); if (!mfile) goto out; - if (!ot_unix_close (fd, error)) - goto out; ret_variant = g_variant_new_from_data (type, g_mapped_file_get_contents (mfile),