summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_diskmbr.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1998-08-10 07:22:14 +0000
committerphk <phk@FreeBSD.org>1998-08-10 07:22:14 +0000
commit456dc60f9ac94813aa538e3067d728d3d1a76442 (patch)
treefa5e2199727c21bfaf84cb38cfc0de33319a1594 /sys/kern/subr_diskmbr.c
parent9ab6c5e5c1c363fc204f5ae068ec4038e6cfafe9 (diff)
downloadFreeBSD-src-456dc60f9ac94813aa538e3067d728d3d1a76442.zip
FreeBSD-src-456dc60f9ac94813aa538e3067d728d3d1a76442.tar.gz
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>
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 13afbdb..ab9d4ba 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,
OpenPOWER on IntegriCloud