[03/17] installer: Ensure to always create the /boot directory.

Message ID 20240315191442.3951-4-stefan.schantl@ipfire.org
State Superseded
Headers
Series BTRFS support on IPFire 2.x (experimental) |

Commit Message

Stefan Schantl March 15, 2024, 7:14 p.m. UTC
  Ensure to always create the /boot directory during the mounting
of the various created file systems. If the /boot directory does not
exist some following mount operations could not be performed correctly
and the installation/mounting will fail.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
 src/installer/hw.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
  

Patch

diff --git a/src/installer/hw.c b/src/installer/hw.c
index a196bf8be..b9ed92459 100644
--- a/src/installer/hw.c
+++ b/src/installer/hw.c
@@ -904,10 +904,16 @@  int hw_mount_filesystems(struct hw_destination* dest, const char* prefix) {
 		return r;
 
 	// boot
-	if (*dest->part_boot) {
-		snprintf(target, sizeof(target), "%s%s", prefix, HW_PATH_BOOT);
-		mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+	snprintf(target, sizeof(target), "%s%s", prefix, HW_PATH_BOOT);
+	r = mkdir(target, S_IRWXU|S_IRWXG|S_IRWXO);
+
+	if (r) {
+		hw_umount_filesystems(dest, prefix);
 
+		return r;
+	}
+
+	if (*dest->part_boot) {
 		r = hw_mount(dest->part_boot, target, filesystem, 0);
 		if (r) {
 			hw_umount_filesystems(dest, prefix);