From: Colin Walters Date: Sat, 9 Jan 2021 20:42:43 +0000 (+0000) Subject: main: Unconditionally set up mount namespace X-Git-Tag: archive/raspbian/2022.1-3+rpi1~1^2~4^2~5^2~26^2~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=10556a95b4820d713ca440015be9cb2aca6711e2;p=ostree.git main: Unconditionally set up mount namespace I was being very conservative initially here, but I think it's really safe to just unconditionally set up the mount namespace. This avoids having to check twice for a read-only `/sysroot` (once in the binary and once in the library). --- diff --git a/src/ostree/ot-main.c b/src/ostree/ot-main.c index bffa40c4..d153dcec 100644 --- a/src/ostree/ot-main.c +++ b/src/ostree/ot-main.c @@ -122,26 +122,10 @@ maybe_setup_mount_namespace (gboolean *out_ns, if (errno == ENOENT) return TRUE; - glnx_autofd int sysroot_subdir_fd = glnx_opendirat_with_errno (AT_FDCWD, "/sysroot", TRUE); - if (sysroot_subdir_fd < 0) - { - if (errno != ENOENT) - return glnx_throw_errno_prefix (error, "opendirat"); - /* No /sysroot - nothing to do */ - return TRUE; - } - - struct statvfs stvfs; - if (fstatvfs (sysroot_subdir_fd, &stvfs) < 0) - return glnx_throw_errno_prefix (error, "fstatvfs"); - if (stvfs.f_flag & ST_RDONLY) - { - if (unshare (CLONE_NEWNS) < 0) - return glnx_throw_errno_prefix (error, "preparing writable sysroot: unshare (CLONE_NEWNS)"); - - *out_ns = TRUE; - } + if (unshare (CLONE_NEWNS) < 0) + return glnx_throw_errno_prefix (error, "setting up mount namespace: unshare(CLONE_NEWNS)"); + *out_ns = TRUE; return TRUE; }