svn commit: r300288 - in head/sys/geom: . eli journal mirror mountver raid raid3

Konstantin Belousov kib at FreeBSD.org
Fri May 20 08:25:40 UTC 2016


Author: kib
Date: Fri May 20 08:25:37 2016
New Revision: 300288
URL: https://svnweb.freebsd.org/changeset/base/300288

Log:
  Removal of Giant droping wrappers for GEOM classes.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/geom/eli/g_eli.c
  head/sys/geom/geom_mbr.c
  head/sys/geom/geom_pc98.c
  head/sys/geom/geom_subr.c
  head/sys/geom/journal/g_journal.c
  head/sys/geom/mirror/g_mirror.c
  head/sys/geom/mountver/g_mountver.c
  head/sys/geom/raid/g_raid.c
  head/sys/geom/raid3/g_raid3.c

Modified: head/sys/geom/eli/g_eli.c
==============================================================================
--- head/sys/geom/eli/g_eli.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/eli/g_eli.c	Fri May 20 08:25:37 2016	(r300288)
@@ -1231,7 +1231,6 @@ g_eli_shutdown_pre_sync(void *arg, int h
 	int error;
 
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) {
 		sc = gp->softc;
@@ -1247,7 +1246,6 @@ g_eli_shutdown_pre_sync(void *arg, int h
 		}
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void

Modified: head/sys/geom/geom_mbr.c
==============================================================================
--- head/sys/geom/geom_mbr.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/geom_mbr.c	Fri May 20 08:25:37 2016	(r300288)
@@ -190,7 +190,6 @@ g_mbr_ioctl(struct g_provider *pp, u_lon
 	case DIOCSMBR: {
 		if (!(fflag & FWRITE))
 			return (EPERM);
-		DROP_GIANT();
 		g_topology_lock();
 		cp = LIST_FIRST(&gp->consumer);
 		if (cp->acw == 0) {
@@ -205,7 +204,6 @@ g_mbr_ioctl(struct g_provider *pp, u_lon
 		if (opened)
 			g_access(cp, 0, -1 , 0);
 		g_topology_unlock();
-		PICKUP_GIANT();
 		return(error);
 	}
 	default:

Modified: head/sys/geom/geom_pc98.c
==============================================================================
--- head/sys/geom/geom_pc98.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/geom_pc98.c	Fri May 20 08:25:37 2016	(r300288)
@@ -176,7 +176,6 @@ g_pc98_ioctl(struct g_provider *pp, u_lo
 	case DIOCSPC98: {
 		if (!(fflag & FWRITE))
 			return (EPERM);
-		DROP_GIANT();
 		g_topology_lock();
 		cp = LIST_FIRST(&gp->consumer);
 		if (cp->acw == 0) {
@@ -191,7 +190,6 @@ g_pc98_ioctl(struct g_provider *pp, u_lo
 		if (opened)
 			g_access(cp, 0, -1 , 0);
 		g_topology_unlock();
-		PICKUP_GIANT();
 		return(error);
 	}
 	default:

Modified: head/sys/geom/geom_subr.c
==============================================================================
--- head/sys/geom/geom_subr.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/geom_subr.c	Fri May 20 08:25:37 2016	(r300288)
@@ -247,9 +247,7 @@ g_modevent(module_t mod, int type, void 
 		break;
 	case MOD_UNLOAD:
 		g_trace(G_T_TOPOLOGY, "g_modevent(%s, UNLOAD)", mp->name);
-		DROP_GIANT();
 		error = g_unload_class(mp);
-		PICKUP_GIANT();
 		if (error == 0) {
 			KASSERT(LIST_EMPTY(&mp->geom),
 			    ("Unloaded class (%s) still has geom", mp->name));

Modified: head/sys/geom/journal/g_journal.c
==============================================================================
--- head/sys/geom/journal/g_journal.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/journal/g_journal.c	Fri May 20 08:25:37 2016	(r300288)
@@ -2697,7 +2697,6 @@ g_journal_shutdown(void *arg, int howto 
 	if (panicstr != NULL)
 		return;
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) {
 		if (gp->softc == NULL)
@@ -2706,7 +2705,6 @@ g_journal_shutdown(void *arg, int howto 
 		g_journal_destroy(gp->softc);
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 /*
@@ -2725,7 +2723,6 @@ g_journal_lowmem(void *arg, int howto __
 
 	g_journal_stats_low_mem++;
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	LIST_FOREACH(gp, &mp->geom, geom) {
 		sc = gp->softc;
@@ -2756,7 +2753,6 @@ g_journal_lowmem(void *arg, int howto __
 			break;
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void g_journal_switcher(void *arg);
@@ -2871,7 +2867,6 @@ g_journal_do_switch(struct g_class *clas
 	char *mountpoint;
 	int error, save;
 
-	DROP_GIANT();
 	g_topology_lock();
 	LIST_FOREACH(gp, &classp->geom, geom) {
 		sc = gp->softc;
@@ -2886,7 +2881,6 @@ g_journal_do_switch(struct g_class *clas
 		mtx_unlock(&sc->sc_mtx);
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 
 	mtx_lock(&mountlist_mtx);
 	TAILQ_FOREACH(mp, &mountlist, mnt_list) {
@@ -2901,11 +2895,9 @@ g_journal_do_switch(struct g_class *clas
 			continue;
 		/* mtx_unlock(&mountlist_mtx) was done inside vfs_busy() */
 
-		DROP_GIANT();
 		g_topology_lock();
 		sc = g_journal_find_device(classp, mp->mnt_gjprovider);
 		g_topology_unlock();
-		PICKUP_GIANT();
 
 		if (sc == NULL) {
 			GJ_DEBUG(0, "Cannot find journal geom for %s.",
@@ -2984,7 +2976,6 @@ next:
 
 	sc = NULL;
 	for (;;) {
-		DROP_GIANT();
 		g_topology_lock();
 		LIST_FOREACH(gp, &g_journal_class.geom, geom) {
 			sc = gp->softc;
@@ -3000,7 +2991,6 @@ next:
 			sc = NULL;
 		}
 		g_topology_unlock();
-		PICKUP_GIANT();
 		if (sc == NULL)
 			break;
 		mtx_assert(&sc->sc_mtx, MA_OWNED);

Modified: head/sys/geom/mirror/g_mirror.c
==============================================================================
--- head/sys/geom/mirror/g_mirror.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/mirror/g_mirror.c	Fri May 20 08:25:37 2016	(r300288)
@@ -3310,7 +3310,6 @@ g_mirror_shutdown_post_sync(void *arg, i
 	int error;
 
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	g_mirror_shutdown = 1;
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) {
@@ -3329,7 +3328,6 @@ g_mirror_shutdown_post_sync(void *arg, i
 		g_topology_lock();
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void

Modified: head/sys/geom/mountver/g_mountver.c
==============================================================================
--- head/sys/geom/mountver/g_mountver.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/mountver/g_mountver.c	Fri May 20 08:25:37 2016	(r300288)
@@ -611,12 +611,10 @@ g_mountver_shutdown_pre_sync(void *arg, 
 	struct g_geom *gp, *gp2;
 
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2)
 		g_mountver_destroy(gp, 1);
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void

Modified: head/sys/geom/raid/g_raid.c
==============================================================================
--- head/sys/geom/raid/g_raid.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/raid/g_raid.c	Fri May 20 08:25:37 2016	(r300288)
@@ -2462,7 +2462,6 @@ g_raid_shutdown_post_sync(void *arg, int
 	struct g_raid_volume *vol;
 
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	g_raid_shutdown = 1;
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) {
@@ -2477,7 +2476,6 @@ g_raid_shutdown_post_sync(void *arg, int
 		g_topology_lock();
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void

Modified: head/sys/geom/raid3/g_raid3.c
==============================================================================
--- head/sys/geom/raid3/g_raid3.c	Fri May 20 08:22:20 2016	(r300287)
+++ head/sys/geom/raid3/g_raid3.c	Fri May 20 08:25:37 2016	(r300288)
@@ -3543,7 +3543,6 @@ g_raid3_shutdown_post_sync(void *arg, in
 	int error;
 
 	mp = arg;
-	DROP_GIANT();
 	g_topology_lock();
 	g_raid3_shutdown = 1;
 	LIST_FOREACH_SAFE(gp, &mp->geom, geom, gp2) {
@@ -3562,7 +3561,6 @@ g_raid3_shutdown_post_sync(void *arg, in
 		g_topology_lock();
 	}
 	g_topology_unlock();
-	PICKUP_GIANT();
 }
 
 static void


More information about the svn-src-head mailing list