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