[ostree] core: Make mkdir -p function safer
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ostree] core: Make mkdir -p function safer
- Date: Fri, 12 Oct 2012 19:11:56 +0000 (UTC)
commit 4436ed34d8da0f3caef0e6e41eebcb771b941096
Author: Colin Walters <walters verbum org>
Date: Fri Oct 12 15:10:39 2012 -0400
core: Make mkdir -p function safer
Recursing here is just a more obvious way to do it, rather than
relying on the semantics of g_file_make_directory_with_parents().
src/libotutil/ot-gio-utils.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/src/libotutil/ot-gio-utils.c b/src/libotutil/ot-gio-utils.c
index 31ea3fa..1e98516 100644
--- a/src/libotutil/ot-gio-utils.c
+++ b/src/libotutil/ot-gio-utils.c
@@ -57,9 +57,11 @@ ot_gfile_ensure_directory (GFile *dir,
gboolean ret = FALSE;
GError *temp_error = NULL;
- again:
if (with_parents)
- ret = g_file_make_directory_with_parents (dir, NULL, &temp_error);
+ {
+ ot_lobj GFile *parent = g_file_get_parent (dir);
+ ret = ot_gfile_ensure_directory (parent, TRUE, &temp_error);
+ }
else
ret = g_file_make_directory (dir, NULL, &temp_error);
if (!ret)
@@ -72,11 +74,6 @@ ot_gfile_ensure_directory (GFile *dir,
else
g_clear_error (&temp_error);
}
- /* Work around glib bug where if multiple threads/processes race in
- * _with_parents, it can error out early
- */
- if (with_parents && !g_file_query_exists (dir, NULL))
- goto again;
ret = TRUE;
out:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]