svn commit: r221446 - head/sys/geom/cache

Andrey V. Elsukov ae at FreeBSD.org
Wed May 4 17:37:37 UTC 2011


Author: ae
Date: Wed May  4 17:37:37 2011
New Revision: 221446
URL: http://svn.freebsd.org/changeset/base/221446

Log:
  Remove unneeded checks, g_new_xxx functions can not fail.
  
  MFC after:	1 week

Modified:
  head/sys/geom/cache/g_cache.c

Modified: head/sys/geom/cache/g_cache.c
==============================================================================
--- head/sys/geom/cache/g_cache.c	Wed May  4 17:04:31 2011	(r221445)
+++ head/sys/geom/cache/g_cache.c	Wed May  4 17:37:37 2011	(r221446)
@@ -501,12 +501,6 @@ g_cache_create(struct g_class *mp, struc
 	}
 
 	gp = g_new_geomf(mp, md->md_name);
-	if (gp == NULL) {
-		G_CACHE_DEBUG(0, "Cannot create geom %s.", md->md_name);
-		return (NULL);
-	}
-	gp->softc = NULL;	/* for a moment */
-
 	sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO);
 	sc->sc_type = type;
 	sc->sc_bshift = bshift;
@@ -527,10 +521,6 @@ g_cache_create(struct g_class *mp, struc
 	gp->dumpconf = g_cache_dumpconf;
 
 	newpp = g_new_providerf(gp, "cache/%s", gp->name);
-	if (newpp == NULL) {
-		G_CACHE_DEBUG(0, "Cannot create provider cache/%s.", gp->name);
-		goto fail;
-	}
 	newpp->sectorsize = pp->sectorsize;
 	newpp->mediasize = pp->mediasize;
 	if (type == G_CACHE_TYPE_AUTOMATIC)
@@ -538,35 +528,20 @@ g_cache_create(struct g_class *mp, struc
 	sc->sc_tail = BNO2OFF(OFF2BNO(newpp->mediasize, sc), sc);
 
 	cp = g_new_consumer(gp);
-	if (cp == NULL) {
-		G_CACHE_DEBUG(0, "Cannot create consumer for %s.", gp->name);
-		goto fail;
-	}
 	if (g_attach(cp, pp) != 0) {
 		G_CACHE_DEBUG(0, "Cannot attach to provider %s.", pp->name);
-		goto fail;
+		g_destroy_consumer(cp);
+		g_destroy_provider(newpp);
+		mtx_destroy(&sc->sc_mtx);
+		g_free(sc);
+		g_destroy_geom(gp);
+		return (NULL);
 	}
 
 	g_error_provider(newpp, 0);
 	G_CACHE_DEBUG(0, "Device %s created.", gp->name);
 	callout_reset(&sc->sc_callout, g_cache_timeout * hz, g_cache_go, sc);
 	return (gp);
-fail:
-	if (cp != NULL) {
-		if (cp->provider != NULL)
-			g_detach(cp);
-		g_destroy_consumer(cp);
-	}
-	if (newpp != NULL)
-		g_destroy_provider(newpp);
-	if (gp != NULL) {
-		if (gp->softc != NULL) {
-			mtx_destroy(&sc->sc_mtx);
-			g_free(gp->softc);
-		}
-		g_destroy_geom(gp);
-	}
-	return (NULL);
 }
 
 static int


More information about the svn-src-all mailing list