Module Name: src Committed By: martin Date: Thu Jul 25 13:11:15 UTC 2019
Modified Files: src/usr.sbin/sysinst: disks.c Log Message: When re-discovering a disk where we have free the partitions, read the current partitions again (they might have changed). To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/usr.sbin/sysinst/disks.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/disks.c diff -u src/usr.sbin/sysinst/disks.c:1.43 src/usr.sbin/sysinst/disks.c:1.44 --- src/usr.sbin/sysinst/disks.c:1.43 Wed Jul 24 14:35:02 2019 +++ src/usr.sbin/sysinst/disks.c Thu Jul 25 13:11:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: disks.c,v 1.43 2019/07/24 14:35:02 martin Exp $ */ +/* $NetBSD: disks.c,v 1.44 2019/07/25 13:11:15 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -873,15 +873,27 @@ find_disks(const char *doingwhat, bool a already_found = 0; SLIST_FOREACH(pm_i, &pm_head, l) { pm_last = pm_i; - if (!already_found && - strcmp(pm_i->diskdev, disk->dd_name) == 0) { - pm_i->found = 1; + if (strcmp(pm_i->diskdev, disk->dd_name) == 0) { + already_found = 1; break; } } - if (pm_i != NULL && pm_i->found) - /* We already added this device, skipping */ + if (pm_i != NULL && already_found) { + /* + * We already added this device, but + * partitions might have changed + */ + if (!pm_i->found) { + pm_i->found = true; + if (pm_i->parts == NULL) { + pm_i->parts = + partitions_read_disk( + pm_i->diskdev, + disk->dd_totsec); + } + } continue; + } } pm = pm_new; pm->found = 1;