From 63d0c4c78130154c95c6a8ff1fb231936d9fa607 Mon Sep 17 00:00:00 2001 From: Luca BRUNO Date: Mon, 1 Nov 2021 09:09:58 +0000 Subject: prepare-root: check for read-only sysroot status early on This moves read-only sysroot checks upfront, so that they are not intermixed with mount operations. It has no immediate side-effects, but allow these check to be independent from the rest of the mounting logic (and future changes to it). --- src/switchroot/ostree-prepare-root.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/switchroot/ostree-prepare-root.c b/src/switchroot/ostree-prepare-root.c index aa7d5a4e..a99d884d 100644 --- a/src/switchroot/ostree-prepare-root.c +++ b/src/switchroot/ostree-prepare-root.c @@ -216,6 +216,20 @@ main(int argc, char *argv[]) err (EXIT_FAILURE, "failed to umount proc from /proc"); } + /* Query the repository configuration - this is an operating system builder + * choice. More info: https://github.com/ostreedev/ostree/pull/1767 + */ + const bool sysroot_readonly = sysroot_is_configured_ro (root_arg); + const bool sysroot_currently_writable = !path_is_on_readonly_fs (root_arg); +#ifdef USE_LIBSYSTEMD + sd_journal_send ("MESSAGE=filesystem at %s currently writable: %d", root_arg, + (int)sysroot_currently_writable, + NULL); + sd_journal_send ("MESSAGE=sysroot.readonly configuration value: %d", + (int)sysroot_readonly, + NULL); +#endif + /* Work-around for a kernel bug: for some reason the kernel * refuses switching root if any file systems are mounted * MS_SHARED. Hence remount them MS_PRIVATE here as a @@ -235,20 +249,6 @@ main(int argc, char *argv[]) if (chdir (deploy_path) < 0) err (EXIT_FAILURE, "failed to chdir to deploy_path"); - /* Query the repository configuration - this is an operating system builder - * choice. More info: https://github.com/ostreedev/ostree/pull/1767 - */ - const bool sysroot_readonly = sysroot_is_configured_ro (root_arg); - const bool sysroot_currently_writable = !path_is_on_readonly_fs (root_arg); -#ifdef USE_LIBSYSTEMD - sd_journal_send ("MESSAGE=filesystem at %s currently writable: %d", root_arg, - (int)sysroot_currently_writable, - NULL); - sd_journal_send ("MESSAGE=sysroot.readonly configuration value: %d", - (int)sysroot_readonly, - NULL); -#endif - if (sysroot_readonly) { if (!sysroot_currently_writable) -- cgit v1.2.1