diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2007-06-09 04:08:40 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2007-06-09 04:08:40 +0000 |
commit | 8db24ffd6547f4051a73e32d3237e9c38c40cac3 (patch) | |
tree | 51e11377a986486a428ac1c25c02fcfaefa5099f /sys/arch/mvme88k | |
parent | 286d80d720e22c23855a4337f119fcb87ef9f023 (diff) |
by hand i carefully found that all the differences in setdisklabel()
implimentations were simply either missing code, or spacing and such.
setdisklabel() can become MI now.
Diffstat (limited to 'sys/arch/mvme88k')
-rw-r--r-- | sys/arch/mvme88k/mvme88k/disksubr.c | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/sys/arch/mvme88k/mvme88k/disksubr.c b/sys/arch/mvme88k/mvme88k/disksubr.c index 34cf8b2bb92..4ed75b1349f 100644 --- a/sys/arch/mvme88k/mvme88k/disksubr.c +++ b/sys/arch/mvme88k/mvme88k/disksubr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: disksubr.c,v 1.46 2007/06/09 00:39:25 krw Exp $ */ +/* $OpenBSD: disksubr.c,v 1.47 2007/06/09 04:08:39 deraadt Exp $ */ /* * Copyright (c) 1998 Steve Murphree, Jr. * Copyright (c) 1995 Dale Rahn. @@ -130,58 +130,6 @@ done: return (msg); } -/* - * Check new disk label for sensibility - * before setting it. - */ -int -setdisklabel(struct disklabel *olp, struct disklabel *nlp, - u_int openmask, struct cpu_disklabel *clp) -{ - int i; - struct partition *opp, *npp; - - /* sanity clause */ - if (nlp->d_secpercyl == 0 || nlp->d_secsize == 0 || - (nlp->d_secsize % DEV_BSIZE) != 0) - return (EINVAL); - - /* special case to allow disklabel to be invalidated */ - if (nlp->d_magic == 0xffffffff) { - *olp = *nlp; - return (0); - } - - if (nlp->d_magic != DISKMAGIC || nlp->d_magic2 != DISKMAGIC || - dkcksum(nlp) != 0) - return (EINVAL); - - while ((i = ffs(openmask)) != 0) { - i--; - openmask &= ~(1 << i); - if (nlp->d_npartitions <= i) - return (EBUSY); - opp = &olp->d_partitions[i]; - npp = &nlp->d_partitions[i]; - if (DL_GETPOFFSET(npp) != DL_GETPOFFSET(opp) || - DL_GETPSIZE(npp) < DL_GETPSIZE(opp)) - return (EBUSY); - /* - * Copy internally-set partition information - * if new label doesn't include it. XXX - */ - if (npp->p_fstype == FS_UNUSED && opp->p_fstype != FS_UNUSED) { - npp->p_fstype = opp->p_fstype; - npp->p_fragblock = opp->p_fragblock; - npp->p_cpg = opp->p_cpg; - } - } - - nlp->d_checksum = 0; - nlp->d_checksum = dkcksum(nlp); - *olp = *nlp; - return (0); -} /* * Write disk label back to device after modification. |