diff options
author | Luca BRUNO <luca.bruno@coreos.com> | 2021-11-01 09:09:58 +0000 |
---|---|---|
committer | Luca BRUNO <luca.bruno@coreos.com> | 2021-11-01 09:42:36 +0000 |
commit | 63d0c4c78130154c95c6a8ff1fb231936d9fa607 (patch) | |
tree | a8be3c8abfd36b01493b8cb15861922b39f92043 /src/switchroot | |
parent | b7efd16cc5e1555ca4aca42fa17a6f0565b7c647 (diff) | |
download | ostree-63d0c4c78130154c95c6a8ff1fb231936d9fa607.tar.gz |
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).
Diffstat (limited to 'src/switchroot')
-rw-r--r-- | src/switchroot/ostree-prepare-root.c | 28 |
1 files 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) |