summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2012-04-11 06:35:13 +0000
committerae <ae@FreeBSD.org>2012-04-11 06:35:13 +0000
commit4527ee85033dca73972bccc0ed5862364a3c4611 (patch)
treef4bab6483f04c744b5af093ae6ec449e80122b46
parentf3299cb2fb2e3ce259e36d9f4b84e63c1d940acb (diff)
downloadFreeBSD-src-4527ee85033dca73972bccc0ed5862364a3c4611.zip
FreeBSD-src-4527ee85033dca73972bccc0ed5862364a3c4611.tar.gz
It seems that libdisk(3) incorrectly sets d_secperunit value.
Automatically fix it like GEOM_PART_BSD does. MFC after: 1 week
-rw-r--r--sbin/bsdlabel/bsdlabel.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c
index 24d852b..ce5d375 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -1194,7 +1194,8 @@ checklabel(struct disklabel *lp)
lp->d_interleave = vl->d_interleave;
if (lp->d_secpercyl == 0)
lp->d_secpercyl = vl->d_secpercyl;
- if (lp->d_secperunit == 0)
+ if (lp->d_secperunit == 0 ||
+ lp->d_secperunit > vl->d_secperunit)
lp->d_secperunit = vl->d_secperunit;
if (lp->d_bbsize == 0)
lp->d_bbsize = vl->d_bbsize;
OpenPOWER on IntegriCloud