Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Apr 2009 16:36:28 +0000 (UTC)
From:      Ulf Lilleengen <lulf@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r191248 - head/sys/geom/vinum
Message-ID:  <200904181636.n3IGaSPJ081165@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lulf
Date: Sat Apr 18 16:36:27 2009
New Revision: 191248
URL: http://svn.freebsd.org/changeset/base/191248

Log:
  - Remove assertion of topology lock remaining from 7.x gvinum. It is not needed,
    as the renaming only changes internal gvinum names and will not alter the geom
    topology.
  - The topology lock was not held when calling g_wither_geom after renaming.

Modified:
  head/sys/geom/vinum/geom_vinum.c
  head/sys/geom/vinum/geom_vinum_rename.c

Modified: head/sys/geom/vinum/geom_vinum.c
==============================================================================
--- head/sys/geom/vinum/geom_vinum.c	Sat Apr 18 16:14:03 2009	(r191247)
+++ head/sys/geom/vinum/geom_vinum.c	Sat Apr 18 16:36:27 2009	(r191248)
@@ -897,7 +897,9 @@ gv_worker(void *arg)
 					    v->name);
 					break;
 				}
+				g_topology_lock();
 				g_wither_provider(v->provider, ENOENT);
+				g_topology_unlock();
 				v->provider = NULL;
 				gv_post_event(sc, GV_EVENT_SETUP_OBJECTS, sc,
 				    NULL, 0, 0);

Modified: head/sys/geom/vinum/geom_vinum_rename.c
==============================================================================
--- head/sys/geom/vinum/geom_vinum_rename.c	Sat Apr 18 16:14:03 2009	(r191247)
+++ head/sys/geom/vinum/geom_vinum_rename.c	Sat Apr 18 16:36:27 2009	(r191248)
@@ -125,7 +125,6 @@ gv_rename_drive(struct gv_softc *sc, str
 {
 	struct gv_sd *s;
 
-	g_topology_assert();
 	KASSERT(d != NULL, ("gv_rename_drive: NULL d"));
 
 	if (gv_object_type(sc, newname) != GV_ERR_NOTFOUND) {
@@ -151,7 +150,6 @@ gv_rename_plex(struct gv_softc *sc, stru
 	char *ptr;
 	int err;
 
-	g_topology_assert();
 	KASSERT(p != NULL, ("gv_rename_plex: NULL p"));
 
 	if (gv_object_type(sc, newname) != GV_ERR_NOTFOUND) {
@@ -203,7 +201,6 @@ gv_rename_sd(struct gv_softc *sc, struct
 {
 	char *dot1, *dot2;
 
-	g_topology_assert();
 	KASSERT(s != NULL, ("gv_rename_sd: NULL s"));
 
 	if (gv_object_type(sc, newname) != GV_ERR_NOTFOUND) {
@@ -231,7 +228,6 @@ gv_rename_vol(struct gv_softc *sc, struc
 	char newplex[GV_MAXPLEXNAME], *ptr;
 	int err;
 
-	g_topology_assert();
 	KASSERT(v != NULL, ("gv_rename_vol: NULL v"));
 	pp = v->provider;
 	KASSERT(pp != NULL, ("gv_rename_vol: NULL pp"));



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904181636.n3IGaSPJ081165>