aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/subr_diskmbr.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>1998-08-10 07:22:14 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>1998-08-10 07:22:14 +0000
commit22126f42082e6c63963b43e8a977d8bf03e2b474 (patch)
tree1f71751b614256ecfabc2e3ef2633bd3226bbe4f /sys/kern/subr_diskmbr.c
parentf18b0f69299ea8cf14e3ff874477938dde88ce30 (diff)
downloadsrc-22126f42082e6c63963b43e8a977d8bf03e2b474.tar.gz
src-22126f42082e6c63963b43e8a977d8bf03e2b474.zip
The machine dependent disk slice manager does not recognize
DOS partition type 15 (Extended DOS, LBA) as a container for DOS logical volumes, so the appropriate slices (e.g. sd1s5) are not initialized. PR: 7549 PR: 4120 Reviewed by: phk Submitted by: Jim Mattson <jmattson@sonic.net>
Notes
Notes: svn path=/head/; revision=38214
Diffstat (limited to 'sys/kern/subr_diskmbr.c')
-rw-r--r--sys/kern/subr_diskmbr.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/subr_diskmbr.c b/sys/kern/subr_diskmbr.c
index 13afbdba0654..ab9d4bac6948 100644
--- a/sys/kern/subr_diskmbr.c
+++ b/sys/kern/subr_diskmbr.c
@@ -35,7 +35,7 @@
*
* from: @(#)ufs_disksubr.c 7.16 (Berkeley) 5/4/91
* from: ufs_disksubr.c,v 1.8 1994/06/07 01:21:39 phk Exp $
- * $Id: diskslice_machdep.c,v 1.29 1998/07/20 13:39:43 bde Exp $
+ * $Id: diskslice_machdep.c,v 1.30 1998/07/25 16:35:06 bde Exp $
*/
#include <sys/param.h>
@@ -43,6 +43,7 @@
#include <sys/conf.h>
#include <sys/disklabel.h>
#define DOSPTYP_EXTENDED 5
+#define DOSPTYP_EXTENDEDX 15
#define DOSPTYP_ONTRACK 84
#include <sys/diskslice.h>
#include <sys/malloc.h>
@@ -325,7 +326,8 @@ reread_mbr:
/* Handle extended partitions. */
sp -= NDOSPART;
for (dospart = 0; dospart < NDOSPART; dospart++, sp++)
- if (sp->ds_type == DOSPTYP_EXTENDED)
+ if (sp->ds_type == DOSPTYP_EXTENDED ||
+ sp->ds_type == DOSPTYP_EXTENDEDX)
extended(dname, bp->b_dev, strat, lp, ssp,
sp->ds_offset, sp->ds_size, sp->ds_offset,
max_nsectors, max_ntracks, mbr_offset);
@@ -397,7 +399,8 @@ extended(dname, dev, strat, lp, ssp, ext_offset, ext_size, base_ext_offset,
if (dp->dp_scyl == 0 && dp->dp_shd == 0 && dp->dp_ssect == 0
&& dp->dp_start == 0 && dp->dp_size == 0)
continue;
- if (dp->dp_typ == DOSPTYP_EXTENDED) {
+ if (dp->dp_typ == DOSPTYP_EXTENDED ||
+ dp->dp_typ == DOSPTYP_EXTENDEDX) {
char buf[32];
sname = dsname(dname, dkunit(dev), WHOLE_DISK_SLICE,