Page MenuHomeFreeBSD

D26855.diff
No OneTemporary

D26855.diff

Index: head/sys/geom/geom_dev.c
===================================================================
--- head/sys/geom/geom_dev.c
+++ head/sys/geom/geom_dev.c
@@ -346,9 +346,15 @@
cp->private = sc;
cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE;
error = g_attach(cp, pp);
- KASSERT(error == 0 || error == ENXIO,
- ("g_dev_taste(%s) failed to g_attach, err=%d", pp->name, error));
-
+ if (error != 0) {
+ printf("%s: g_dev_taste(%s) failed to g_attach, error=%d\n",
+ __func__, pp->name, error);
+ g_destroy_consumer(cp);
+ g_destroy_geom(gp);
+ mtx_destroy(&sc->sc_mtx);
+ g_free(sc);
+ return (NULL);
+ }
make_dev_args_init(&args);
args.mda_flags = MAKEDEV_CHECKNAME | MAKEDEV_WAITOK;
args.mda_devsw = &g_dev_cdevsw;
Index: head/sys/geom/uzip/g_uzip.c
===================================================================
--- head/sys/geom/uzip/g_uzip.c
+++ head/sys/geom/uzip/g_uzip.c
@@ -707,11 +707,11 @@
gp = g_new_geomf(mp, GUZ_DEV_NAME("%s"), pp->name);
cp = g_new_consumer(gp);
error = g_attach(cp, pp);
- if (error == 0)
- error = g_access(cp, 1, 0, 0);
- if (error) {
+ if (error != 0)
+ goto e0;
+ error = g_access(cp, 1, 0, 0);
+ if (error)
goto e1;
- }
g_topology_unlock();
/*
@@ -942,6 +942,7 @@
g_access(cp, -1, 0, 0);
e1:
g_detach(cp);
+e0:
g_destroy_consumer(cp);
g_destroy_geom(gp);

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 20, 11:18 AM (17 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30014731
Default Alt Text
D26855.diff (1 KB)

Event Timeline