diff options
author | ae <ae@FreeBSD.org> | 2012-04-11 06:35:13 +0000 |
---|---|---|
committer | ae <ae@FreeBSD.org> | 2012-04-11 06:35:13 +0000 |
commit | 4527ee85033dca73972bccc0ed5862364a3c4611 (patch) | |
tree | f4bab6483f04c744b5af093ae6ec449e80122b46 /sbin/bsdlabel | |
parent | f3299cb2fb2e3ce259e36d9f4b84e63c1d940acb (diff) | |
download | FreeBSD-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
Diffstat (limited to 'sbin/bsdlabel')
-rw-r--r-- | sbin/bsdlabel/bsdlabel.c | 3 |
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; |