Module Name: src
Committed By: martin
Date: Sun Jul 14 11:26:18 UTC 2019
Modified Files:
src/usr.sbin/sysinst: bsddisklabel.c
Log Message:
Don't force mounting of newfs'd partitions.
Provide MD hooks for setups where we do not need any bootblocks.
To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/usr.sbin/sysinst/bsddisklabel.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/sysinst/bsddisklabel.c
diff -u src/usr.sbin/sysinst/bsddisklabel.c:1.19 src/usr.sbin/sysinst/bsddisklabel.c:1.20
--- src/usr.sbin/sysinst/bsddisklabel.c:1.19 Fri Jul 12 18:28:08 2019
+++ src/usr.sbin/sysinst/bsddisklabel.c Sun Jul 14 11:26:18 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: bsddisklabel.c,v 1.19 2019/07/12 18:28:08 martin Exp $ */
+/* $NetBSD: bsddisklabel.c,v 1.20 2019/07/14 11:26:18 martin Exp $ */
/*
* Copyright 1997 Piermont Information Systems Inc.
@@ -1375,8 +1375,6 @@ apply_settings_to_partitions(struct pm_d
infos[i].last_mounted = want->mount;
infos[i].fs_type = want->fs_type;
infos[i].fs_sub_type = want->fs_version;
- if (want->fs_type != FS_UNUSED && want->type != PT_swap)
- want->instflags |= PUIINST_NEWFS|PUIINST_MOUNT;
new_part_id = ps->pscheme->add_partition(ps,
&infos[i], NULL);
if (new_part_id == NO_PART)
@@ -1420,8 +1418,11 @@ apply_settings_to_partitions(struct pm_d
infos[i].last_mounted = want->mount;
infos[i].fs_type = want->fs_type;
infos[i].fs_sub_type = want->fs_version;
- if (want->fs_type != FS_UNUSED && want->type != PT_swap)
- want->instflags |= PUIINST_NEWFS|PUIINST_MOUNT;
+ if (want->fs_type != FS_UNUSED && want->type != PT_swap) {
+ want->instflags |= PUIINST_NEWFS;
+ if (want->mount[0] != 0)
+ want->instflags |= PUIINST_MOUNT;
+ }
new_part_id = wanted->parts->pscheme->add_partition(
wanted->parts, &infos[i], NULL);
if (new_part_id == NO_PART)
@@ -1458,9 +1459,6 @@ apply_settings_to_partitions(struct pm_d
infos[i].last_mounted = want->mount;
infos[i].fs_type = want->fs_type;
infos[i].fs_sub_type = want->fs_version;
- if (want->fs_type != FS_UNUSED &&
- want->type != PT_swap)
- want->instflags |= PUIINST_NEWFS|PUIINST_MOUNT;
if (wanted->parts->pscheme->add_outer_partition
!= NULL)
@@ -1663,6 +1661,10 @@ make_bsd_partitions(struct install_parti
return true;
}
+#ifndef MD_NEED_BOOTBLOCK
+#define MD_NEED_BOOTBLOCK(A) true
+#endif
+
/*
* check that there is at least a / somewhere.
*/
@@ -1678,30 +1680,34 @@ check_partitions(struct install_partitio
#endif
#ifdef HAVE_BOOTXX_xFS
- /* check if we have boot code for the root partition type */
- bootxx = bootxx_name(install);
- if (bootxx != NULL) {
- rv = access(bootxx, R_OK);
- free(bootxx);
- } else
- rv = -1;
- if (rv != 0) {
- hit_enter_to_continue(NULL, MSG_No_Bootcode);
- return false;
+ if (MD_NEED_BOOTBLOCK(install)) {
+ /* check if we have boot code for the root partition type */
+ bootxx = bootxx_name(install);
+ if (bootxx != NULL) {
+ rv = access(bootxx, R_OK);
+ free(bootxx);
+ } else
+ rv = -1;
+ if (rv != 0) {
+ hit_enter_to_continue(NULL, MSG_No_Bootcode);
+ return false;
+ }
}
#endif
#ifndef HAVE_UFS2_BOOT
- for (i = 0; i < install->num; i++) {
- if (install->infos[i].type != PT_root)
- continue;
- if (strcmp(install->infos[i].mount, "/") != 0)
- continue;
- if (install->infos[i].fs_type != FS_BSDFFS)
- continue;
- if (install->infos[i].fs_version != 2)
- continue;
- hit_enter_to_continue(NULL, MSG_cannot_ufs2_root);
- return false;
+ if (MD_NEED_BOOTBLOCK(install)) {
+ for (i = 0; i < install->num; i++) {
+ if (install->infos[i].type != PT_root)
+ continue;
+ if (strcmp(install->infos[i].mount, "/") != 0)
+ continue;
+ if (install->infos[i].fs_type != FS_BSDFFS)
+ continue;
+ if (install->infos[i].fs_version != 2)
+ continue;
+ hit_enter_to_continue(NULL, MSG_cannot_ufs2_root);
+ return false;
+ }
}
#endif