Module Name:    src
Committed By:   martin
Date:           Thu Jun 13 12:31:28 UTC 2019

Modified Files:
        src/usr.sbin/sysinst: bsddisklabel.c

Log Message:
Do not use dynamic size adjustments on install descriptions based
on existing partitions - we need to keep them fixed to not confuse
free space calculation.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 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.9 src/usr.sbin/sysinst/bsddisklabel.c:1.10
--- src/usr.sbin/sysinst/bsddisklabel.c:1.9	Wed Jun 12 06:20:17 2019
+++ src/usr.sbin/sysinst/bsddisklabel.c	Thu Jun 13 12:31:28 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: bsddisklabel.c,v 1.9 2019/06/12 06:20:17 martin Exp $	*/
+/*	$NetBSD: bsddisklabel.c,v 1.10 2019/06/13 12:31:28 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1081,7 +1081,7 @@ fill_defaults(struct partition_usage_set
 
 	daddr_t align = parts->pscheme->get_part_alignment(parts);
 
-	if (root < wanted->num) {
+	if (root < wanted->num && wanted->infos[root].cur_part_id == NO_PART) {
 		daddr_t max_root_size = parts->disk_start + parts->disk_size;
 		if (root_limit > 0) {
 			/* Bah - bios can not read all the disk, limit root */
@@ -1093,15 +1093,20 @@ fill_defaults(struct partition_usage_set
 	if (have_x11_by_default()) {
 		daddr_t xsize = XNEEDMB * (MEG / 512);
 		if (usr < wanted->num) {
-			wanted->infos[usr].size += xsize;
-			wanted->infos[usr].def_size += xsize;
+			if (wanted->infos[usr].cur_part_id == NO_PART) {
+				wanted->infos[usr].size += xsize;
+				wanted->infos[usr].def_size += xsize;
+			}
 		} else if (root < wanted->num &&
+		    wanted->infos[root].cur_part_id == NO_PART &&
+		    (wanted->infos[root].limit == 0 ||
 		    (wanted->infos[root].size + xsize) <=
-		    wanted->infos[root].limit) {
+		    wanted->infos[root].limit)) {
 			wanted->infos[root].size += xsize;
 		}
 	}
-	if (wanted->infos[root].size > wanted->infos[root].limit) {
+	if (wanted->infos[root].limit > 0 &&
+	    wanted->infos[root].size > wanted->infos[root].limit) {
 		if (usr < wanted->num) {
 			/* move space from root to usr */
 			daddr_t spill = wanted->infos[root].size -

Reply via email to