Module Name: src Committed By: snj Date: Wed Dec 14 15:36:52 UTC 2022
Modified Files: src/usr.sbin/sysinst [netbsd-9]: bsddisklabel.c Log Message: Pull up following revision(s) (requested by martin in ticket #1553): usr.sbin/sysinst/bsddisklabel.c: revision 1.67 A little less (confusing) magic: adjust the size of / when adding /usr only if / has not beenn manually resized. To generate a diff of this commit: cvs rdiff -u -r1.23.2.11 -r1.23.2.12 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.23.2.11 src/usr.sbin/sysinst/bsddisklabel.c:1.23.2.12 --- src/usr.sbin/sysinst/bsddisklabel.c:1.23.2.11 Thu Oct 15 19:36:50 2020 +++ src/usr.sbin/sysinst/bsddisklabel.c Wed Dec 14 15:36:52 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: bsddisklabel.c,v 1.23.2.11 2020/10/15 19:36:50 bouyer Exp $ */ +/* $NetBSD: bsddisklabel.c,v 1.23.2.12 2022/12/14 15:36:52 snj Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -653,18 +653,23 @@ set_ptn_size(menudesc *m, void *arg) } } /* Remove space for /usr from / */ - if (root < pset->num && pset->infos[i].cur_part_id == - NO_PART) { - pset->infos[root].size -= p->def_size; + if (root < pset->num && + pset->infos[root].cur_part_id == NO_PART && + pset->infos[root].size == + pset->infos[root].def_size) { + /* + * root partition does not yet exist and + * has default size + */ + pset->infos[root].size -= p->def_size; pset->cur_free_space += p->def_size; } - /* hack to add free space to default sized /usr */ - if (strcmp(answer, dflt) == 0) { - size = p->def_size; - pset->infos[root].flags &= ~PUIFLAG_EXTEND; - p->flags |= PUIFLAG_EXTEND; - goto adjust_free; - } + /* + * hack to add free space to /usr if + * previously / got it + */ + if (pset->infos[root].flags & PUIFLAG_EXTEND) + extend = true; } if (new_size_val < 0) continue; @@ -687,7 +692,6 @@ set_ptn_size(menudesc *m, void *arg) } if (p->limit != 0 && size > p->limit) size = p->limit; - adjust_free: if ((p->flags & (PUIFLG_IS_OUTER|PUIFLG_JUST_MOUNTPOINT)) == 0) pset->cur_free_space += p->size - size; p->size = is_percent ? -size : size; @@ -1205,6 +1209,7 @@ fill_defaults(struct partition_usage_set wanted->infos[root].limit; } } + wanted->infos[root].def_size = wanted->infos[root].size; } /*