Module Name: src Committed By: martin Date: Fri Oct 25 12:49:58 UTC 2019
Modified Files: src/usr.sbin/sysinst: disks.c partitions.c partitions.h Log Message: On device where we do not want a MBR (raid, xbd) skip the MBR partitioning scheme when trying to read partitions from disk. The generic reader will fall back to disklabel then. To generate a diff of this commit: cvs rdiff -u -r1.53 -r1.54 src/usr.sbin/sysinst/disks.c cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/sysinst/partitions.c cvs rdiff -u -r1.6 -r1.7 src/usr.sbin/sysinst/partitions.h 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.53 src/usr.sbin/sysinst/disks.c:1.54 --- src/usr.sbin/sysinst/disks.c:1.53 Mon Oct 21 16:10:54 2019 +++ src/usr.sbin/sysinst/disks.c Fri Oct 25 12:49:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: disks.c,v 1.53 2019/10/21 16:10:54 martin Exp $ */ +/* $NetBSD: disks.c,v 1.54 2019/10/25 12:49:58 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -901,7 +901,8 @@ find_disks(const char *doingwhat, bool a pm_i->parts = partitions_read_disk( pm_i->diskdev, - disk->dd_totsec); + disk->dd_totsec, + disk->dd_no_mbr); } } continue; @@ -929,7 +930,8 @@ find_disks(const char *doingwhat, bool a pm->dlsize = disk->dd_cyl * disk->dd_head * disk->dd_sec; - pm->parts = partitions_read_disk(pm->diskdev, disk->dd_totsec); + pm->parts = partitions_read_disk(pm->diskdev, + disk->dd_totsec, disk->dd_no_mbr); again: @@ -1443,7 +1445,7 @@ find_part_by_name(const char *name, stru if (strcmp(disks[n].dd_name, pm->diskdev) == 0) continue; ps = partitions_read_disk(disks[n].dd_name, - disks[n].dd_totsec); + disks[n].dd_totsec, disks[n].dd_no_mbr); if (ps == NULL) continue; if (ps->pscheme->find_by_name == NULL) Index: src/usr.sbin/sysinst/partitions.c diff -u src/usr.sbin/sysinst/partitions.c:1.2 src/usr.sbin/sysinst/partitions.c:1.3 --- src/usr.sbin/sysinst/partitions.c:1.2 Wed Aug 14 13:02:23 2019 +++ src/usr.sbin/sysinst/partitions.c Fri Oct 25 12:49:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: partitions.c,v 1.2 2019/08/14 13:02:23 martin Exp $ */ +/* $NetBSD: partitions.c,v 1.3 2019/10/25 12:49:58 martin Exp $ */ /* * Copyright 2018 The NetBSD Foundation, Inc. @@ -45,7 +45,7 @@ size_t num_available_part_schemes; * Generic reader - query a disk device and read all partitions from it */ struct disk_partitions * -partitions_read_disk(const char *dev, daddr_t disk_size) +partitions_read_disk(const char *dev, daddr_t disk_size, bool no_mbr) { const struct disk_partitioning_scheme **ps; @@ -53,6 +53,8 @@ partitions_read_disk(const char *dev, da return NULL; for (ps = available_part_schemes; *ps; ps++) { + if (no_mbr && (*ps)->name == MSG_parttype_mbr) + continue; struct disk_partitions *parts = (*ps)->read_from_disk(dev, 0, disk_size, *ps); if (parts) Index: src/usr.sbin/sysinst/partitions.h diff -u src/usr.sbin/sysinst/partitions.h:1.6 src/usr.sbin/sysinst/partitions.h:1.7 --- src/usr.sbin/sysinst/partitions.h:1.6 Wed Aug 14 13:02:23 2019 +++ src/usr.sbin/sysinst/partitions.h Fri Oct 25 12:49:58 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: partitions.h,v 1.6 2019/08/14 13:02:23 martin Exp $ */ +/* $NetBSD: partitions.h,v 1.7 2019/10/25 12:49:58 martin Exp $ */ /* * Copyright 2018 The NetBSD Foundation, Inc. @@ -549,7 +549,7 @@ extern size_t num_available_part_schemes * Generic reader - query a disk device and read all partitions from it */ struct disk_partitions * -partitions_read_disk(const char *, daddr_t disk_size); +partitions_read_disk(const char *, daddr_t disk_size, bool no_mbr); /* * One time initialization