Date: Wed, 4 Jul 2007 16:58:56 GMT From: Ulf Lilleengen <lulf@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 122866 for review Message-ID: <200707041658.l64GwuWD001888@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=122866 Change 122866 by lulf@lulf_carrot on 2007/07/04 16:58:53 I thought I'd put on a commit message for the last commit as well - Use the setstate routines to correctly set the state and give the user notification on what's happening. - Remove GV_PLEX_NEWBORN flag when we have configured our plex. - Use a GV_EVENT_SETUP_OBJECTS event that is posted after object creation. This might have to be used other places as well, but it seems to be good enough after initial testing. - This commit includes a fix where the occurence of a error doesn't remove the other objects created. Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#26 edit Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#26 (text+ko) ==== @@ -325,11 +325,11 @@ pp = g_provider_by_name(d2->device); if (pp == NULL) { gctl_error(req, "%s: device not found", d2->device); - return (-1); + goto error; } if (gv_find_drive(sc, d2->name) != NULL) { gctl_error(req, "drive '%s' already exists", d2->name); - return (-1); + goto error; } d = g_malloc(sizeof(*d), M_WAITOK | M_ZERO); @@ -346,7 +346,7 @@ if (gv_find_vol(sc, v2->name) != NULL) { gctl_error(req, "volume '%s' already exists", v2->name); - return (-1); + goto error; } v = g_malloc(sizeof(*v), M_WAITOK | M_ZERO); @@ -363,7 +363,7 @@ if (gv_find_plex(sc, p2->name) != NULL) { gctl_error(req, "plex '%s' already exists", p2->name); - return (-1); + goto error; } p = g_malloc(sizeof(*p), M_WAITOK | M_ZERO); @@ -380,7 +380,7 @@ if (gv_find_sd(sc, s2->name) != NULL) { gctl_error(req, "sd '%s' already exists", s2->name); - return (-1); + goto error; } s = g_malloc(sizeof(*s), M_WAITOK | M_ZERO); @@ -389,6 +389,7 @@ gv_post_event(sc, GV_EVENT_CREATE_SD, s, NULL, 0, 0); } +error: gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc, NULL, 0, 0); gv_post_event(sc, GV_EVENT_SAVE_CONFIG, sc, NULL, 0, 0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707041658.l64GwuWD001888>