Skip to content

Commit

Permalink
sysroot: Tidy code for _ostree_sysroot_ensure_writable
Browse files Browse the repository at this point in the history
  • Loading branch information
ruihe774 committed Dec 21, 2024
1 parent 04d36fa commit 2960f0a
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions src/libostree/ostree-sysroot.c
Original file line number Diff line number Diff line change
Expand Up @@ -569,14 +569,6 @@ _ostree_sysroot_ensure_writable (OstreeSysroot *self, GError **error)
if (!_ostree_in_root_mount_namespace (&in_root, error))
return FALSE;

glnx_autofd int cur_ns_fd = -1;
if (in_root)
{
g_autofree char *cur_ns = g_strdup_printf ("/proc/%d/ns/mnt", gettid ());
if (!glnx_openat_rdonly (AT_FDCWD, cur_ns, TRUE, &cur_ns_fd, error))
return FALSE;
}

if (!_ostree_sysroot_enter_mount_namespace (self, error))
return FALSE;

Expand All @@ -597,9 +589,15 @@ _ostree_sysroot_ensure_writable (OstreeSysroot *self, GError **error)
if (!_ostree_sysroot_ensure_boot_fd (self, error))
return FALSE;

/* Switch back */
if (in_root)
{
if (setns (cur_ns_fd, CLONE_NEWNS) < 0)
glnx_autofd int root_ns_fd = -1;

if (!glnx_openat_rdonly (AT_FDCWD, "/proc/1/ns/mnt", TRUE, &root_ns_fd, error))
return FALSE;

if (setns (root_ns_fd, CLONE_NEWNS) < 0)
return glnx_throw_errno_prefix (error, "setns");
}

Expand Down

0 comments on commit 2960f0a

Please sign in to comment.