From 4527ee85033dca73972bccc0ed5862364a3c4611 Mon Sep 17 00:00:00 2001 From: ae Date: Wed, 11 Apr 2012 06:35:13 +0000 Subject: [PATCH] It seems that libdisk(3) incorrectly sets d_secperunit value. Automatically fix it like GEOM_PART_BSD does. MFC after: 1 week --- sbin/bsdlabel/bsdlabel.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c index 24d852b22a21..ce5d375f3181 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;