diff options
author | Poul-Henning Kamp <phk@FreeBSD.org> | 1998-08-10 07:22:14 +0000 |
---|---|---|
committer | Poul-Henning Kamp <phk@FreeBSD.org> | 1998-08-10 07:22:14 +0000 |
commit | 22126f42082e6c63963b43e8a977d8bf03e2b474 (patch) | |
tree | 1f71751b614256ecfabc2e3ef2633bd3226bbe4f /sys/kern/subr_diskmbr.c | |
parent | f18b0f69299ea8cf14e3ff874477938dde88ce30 (diff) | |
download | src-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.c | 9 |
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, |