summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2011-01-11 11:42:22 +0000
committerae <ae@FreeBSD.org>2011-01-11 11:42:22 +0000
commit0827d66d684465ea819354c090e99a59dc2573c5 (patch)
treed651958e41111fd9310a0c21348fded929fa454b
parentd204f90ffeee44ead70c0909b723dc89499d29c4 (diff)
downloadFreeBSD-src-0827d66d684465ea819354c090e99a59dc2573c5.zip
FreeBSD-src-0827d66d684465ea819354c090e99a59dc2573c5.tar.gz
Round GNOP provider's mediasize to its sectorsize. This prevents KASSERT
in g_io_request when geom classes doing tasting. PR: kern/147852 MFC after: 1 week
-rw-r--r--sys/geom/nop/g_nop.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/geom/nop/g_nop.c b/sys/geom/nop/g_nop.c
index ffa32e3..0c23ffa 100644
--- a/sys/geom/nop/g_nop.c
+++ b/sys/geom/nop/g_nop.c
@@ -176,6 +176,8 @@ g_nop_create(struct gctl_req *req, struct g_class *mp, struct g_provider *pp,
gctl_error(req, "Invalid secsize for provider %s.", pp->name);
return (EINVAL);
}
+ if (size % secsize != 0)
+ size -= size % secsize;
snprintf(name, sizeof(name), "%s%s", pp->name, G_NOP_SUFFIX);
LIST_FOREACH(gp, &mp->geom, geom) {
if (strcmp(gp->name, name) == 0) {
OpenPOWER on IntegriCloud