This basically allows you to stick a disklabel on any partition.

For it to be useful, you must stick your disklabel on the partition which
starts where the MBR says FreeBSD lives.  If you don't do that, you might
get a bad day.

Oh, that probably also means that putting swap there is a bad idea...
This commit is contained in:
Poul-Henning Kamp 1994-10-17 02:31:33 +00:00
parent e57dc19458
commit 1be9232f73
2 changed files with 8 additions and 2 deletions

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_disksubr.c 8.5 (Berkeley) 1/21/94
* $Id: ufs_disksubr.c,v 1.3 1994/08/02 07:54:53 davidg Exp $
* $Id: ufs_disksubr.c,v 1.4 1994/10/08 06:57:23 phk Exp $
*/
#include <sys/param.h>
@ -361,11 +361,14 @@ writedisklabel(dev, strat, lp)
int error = 0;
labelpart = dkpart(dev);
/* XXX this is wrong. But leaving it in is worse. */
#ifndef __FREEBSD__
if (lp->d_partitions[labelpart].p_offset != 0) {
if (lp->d_partitions[0].p_offset != 0)
return (EXDEV); /* not quite right */
labelpart = 0;
}
#endif
bp = geteblk((int)lp->d_secsize);
bp->b_dev = makedev(major(dev), dkminor(dkunit(dev), labelpart));
bp->b_blkno = LABELSECTOR;

View File

@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)ufs_disksubr.c 8.5 (Berkeley) 1/21/94
* $Id: ufs_disksubr.c,v 1.3 1994/08/02 07:54:53 davidg Exp $
* $Id: ufs_disksubr.c,v 1.4 1994/10/08 06:57:23 phk Exp $
*/
#include <sys/param.h>
@ -361,11 +361,14 @@ writedisklabel(dev, strat, lp)
int error = 0;
labelpart = dkpart(dev);
/* XXX this is wrong. But leaving it in is worse. */
#ifndef __FREEBSD__
if (lp->d_partitions[labelpart].p_offset != 0) {
if (lp->d_partitions[0].p_offset != 0)
return (EXDEV); /* not quite right */
labelpart = 0;
}
#endif
bp = geteblk((int)lp->d_secsize);
bp->b_dev = makedev(major(dev), dkminor(dkunit(dev), labelpart));
bp->b_blkno = LABELSECTOR;