PERFORCE change 111564 for review
Matt Jacob
mjacob at FreeBSD.org
Tue Dec 12 09:59:06 PST 2006
http://perforce.freebsd.org/chv.cgi?CH=111564
Change 111564 by mjacob at mjexp on 2006/12/12 17:58:31
More baby steps. Now have something that doesn't crash right away.
Affected files ...
.. //depot/projects/mjexp/sys/geom/multipath/g_multipath.c#2 edit
Differences ...
==== //depot/projects/mjexp/sys/geom/multipath/g_multipath.c#2 (text+ko) ====
@@ -126,10 +126,27 @@
g_topology_assert();
+ /*
+ * Check to make sure parameters from the two providers are the same
+ */
+ if (pp0->mediasize != pp1->mediasize) {
+ gctl_error(req, "Provider %s has mediasize %zx; Provider %s "
+ "has mediasize %zx", pp0->name, (intmax_t) pp0->mediasize,
+ pp1->name, (intmax_t) pp1->mediasize);
+ return (EINVAL);
+ }
+ if (pp0->sectorsize != pp1->sectorsize) {
+ gctl_error(req, "Provider %s has sectorsize %u; Provider %s "
+ "has sectorsize %u", pp0->name, pp0->sectorsize,
+ pp1->name, pp1->sectorsize);
+ return (EINVAL);
+ }
+
gp = NULL;
newpp = NULL;
cp0 = cp1 = NULL;
+
LIST_FOREACH(gp, &mp->geom, geom) {
if (strcmp(gp->name, mpname) == 0) {
gctl_error(req, "Provider %s already exists", mpname);
@@ -155,6 +172,8 @@
error = ENOMEM;
goto fail;
}
+ newpp->mediasize = pp0->mediasize;
+ newpp->sectorsize = pp0->sectorsize;
cp0 = g_new_consumer(gp);
if (cp0 == NULL) {
More information about the p4-projects
mailing list