From: Colin Walters Date: Wed, 10 Jul 2024 21:27:11 +0000 (-0400) Subject: prepare-root: Gather kernel cmdline early X-Git-Tag: archive/raspbian/2024.8-1+rpi1^2~7^2~1^2~1^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=65ff4041953d815e3e32adb28e8d85b7acb8367b;p=ostree.git prepare-root: Gather kernel cmdline early Prep for parsing the composefs config from the kernel cmdline. No functional changes intended. --- diff --git a/src/switchroot/ostree-prepare-root.c b/src/switchroot/ostree-prepare-root.c index 2cb9f67c..c2bee87d 100644 --- a/src/switchroot/ostree-prepare-root.c +++ b/src/switchroot/ostree-prepare-root.c @@ -113,14 +113,11 @@ sysroot_is_configured_ro (const char *sysroot) } static char * -resolve_deploy_path (const char *root_mountpoint) +resolve_deploy_path (const char *kernel_cmdline, const char *root_mountpoint) { char destpath[PATH_MAX]; struct stat stbuf; char *deploy_path; - g_autofree char *kernel_cmdline = read_proc_cmdline (); - if (!kernel_cmdline) - errx (EXIT_FAILURE, "Failed to read kernel cmdline"); g_autoptr (GError) error = NULL; g_autofree char *ostree_target = NULL; @@ -268,6 +265,10 @@ main (int argc, char *argv[]) err (EXIT_FAILURE, "usage: ostree-prepare-root SYSROOT"); const char *root_arg = argv[1]; + g_autofree char *kernel_cmdline = read_proc_cmdline (); + if (!kernel_cmdline) + errx (EXIT_FAILURE, "Failed to read kernel cmdline"); + // Since several APIs want to operate in terms of file descriptors, let's // open the initramfs now. Currently this is just used for the config parser. glnx_autofd int initramfs_rootfs_fd = -1; @@ -308,7 +309,7 @@ main (int argc, char *argv[]) const char *root_mountpoint = realpath (root_arg, NULL); if (root_mountpoint == NULL) err (EXIT_FAILURE, "realpath(\"%s\")", root_arg); - g_autofree char *deploy_path = resolve_deploy_path (root_mountpoint); + g_autofree char *deploy_path = resolve_deploy_path (kernel_cmdline, root_mountpoint); const char *deploy_directory_name = glnx_basename (deploy_path); // Note that realpath() should have stripped any trailing `/` which shouldn't // be in the karg to start with, but we assert here to be sure we have a non-empty