summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_dev.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2010-10-19 21:02:05 +0000
committerdim <dim@FreeBSD.org>2010-10-19 21:02:05 +0000
commitacc1b913a3297e19f9ffe7d2b7b8a3142926d3b4 (patch)
tree3ba42afae5a4abd129ca596650d0c27112d3953e /sys/geom/geom_dev.c
parentba43e0ffe7a883f062e502acf73190ce6534b0fe (diff)
parentf0ce9e3f305fe6039937eade02551429beef30ac (diff)
downloadFreeBSD-src-acc1b913a3297e19f9ffe7d2b7b8a3142926d3b4.zip
FreeBSD-src-acc1b913a3297e19f9ffe7d2b7b8a3142926d3b4.tar.gz
Sync: merge r213992 through r214076 from ^/head.
Diffstat (limited to 'sys/geom/geom_dev.c')
-rw-r--r--sys/geom/geom_dev.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c
index 173e326..e4cbbe3 100644
--- a/sys/geom/geom_dev.c
+++ b/sys/geom/geom_dev.c
@@ -126,8 +126,16 @@ g_dev_taste(struct g_class *mp, struct g_provider *pp, int insist __unused)
error = g_attach(cp, pp);
KASSERT(error == 0,
("g_dev_taste(%s) failed to g_attach, err=%d", pp->name, error));
- dev = make_dev(&g_dev_cdevsw, 0,
- UID_ROOT, GID_OPERATOR, 0640, "%s", gp->name);
+ error = make_dev_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, &dev,
+ &g_dev_cdevsw, NULL, UID_ROOT, GID_OPERATOR, 0640, "%s", gp->name);
+ if (error != 0) {
+ printf("%s: make_dev_p() failed (gp->name=%s, error=%d)\n",
+ __func__, gp->name, error);
+ g_detach(cp);
+ g_destroy_consumer(cp);
+ g_destroy_geom(gp);
+ return (NULL);
+ }
if (pp->flags & G_PF_CANDELETE)
dev->si_flags |= SI_CANDELETE;
dev->si_iosize_max = MAXPHYS;
OpenPOWER on IntegriCloud