mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-16 10:50:43 +03:00
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).
This commit is contained in:
parent
fd9d422c51
commit
10556a95b4
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user