From 75aa7a22f6d6499ade99f66f883dad2a3ebd413c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 13 Jul 2022 15:35:00 -0400 Subject: [PATCH] sysroot: Have `ensure_writable` also always initialize For historical reasons we have a fair bit of distinct sysroot initialization going on. A lot of code is calling *just* the new `ensure_writable()` API, which does basically what you'd expect... except if we're not using a mount namespace. Which is the case in unit tests and legacy setups. Change this API to also ensure the sysroot is fully initialized even in those cases. Specifically we'll have `self->sysroot_fd`. For now, callers that need `/boot` also need to separately call `_ensure_boot_fd()`. --- src/libostree/ostree-sysroot.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libostree/ostree-sysroot.c b/src/libostree/ostree-sysroot.c index bcb55e55..b15265f5 100644 --- a/src/libostree/ostree-sysroot.c +++ b/src/libostree/ostree-sysroot.c @@ -328,14 +328,13 @@ gboolean _ostree_sysroot_ensure_writable (OstreeSysroot *self, GError **error) { + if (!ostree_sysroot_initialize (self, error)) + return FALSE; + /* Do nothing if no mount namespace is in use */ if (!self->mount_namespace_in_use) return TRUE; - /* If a mount namespace is in use, ensure we're initialized */ - if (!ostree_sysroot_initialize (self, error)) - return FALSE; - /* If we aren't operating on a booted system, then we don't * do anything with mounts. */