It seems that libdisk(3) incorrectly sets d_secperunit value.

Automatically fix it like GEOM_PART_BSD does.

MFC after:	1 week
This commit is contained in:
ae 2012-04-11 06:35:13 +00:00
parent f3299cb2fb
commit 4527ee8503

View File

@ -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;