diff options
author | scottl <scottl@FreeBSD.org> | 2014-08-18 19:27:47 +0000 |
---|---|---|
committer | scottl <scottl@FreeBSD.org> | 2014-08-18 19:27:47 +0000 |
commit | cb231d7d66f478b71439e7ee48e0a4289b790928 (patch) | |
tree | 62c87f36f718121861e3f9d61d0544e857615398 /sys/geom | |
parent | 690851410f710e48a3c1b1c750311b3a7aae6263 (diff) | |
download | FreeBSD-src-cb231d7d66f478b71439e7ee48e0a4289b790928.zip FreeBSD-src-cb231d7d66f478b71439e7ee48e0a4289b790928.tar.gz |
Deal explicitly with possible failures of make_dev_alias_p() in GEOM.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
MFC after: 3 days
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/geom_dev.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index 2c113e6..a2034d3 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -251,9 +251,10 @@ g_dev_taste(struct g_class *mp, struct g_provider *pp, int insist __unused) snprintf(buf, sizeof(buf), "%s%s", val, gp->name + len); freeenv(val); - make_dev_alias_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, - &adev, dev, "%s", buf); - adev->si_flags |= SI_UNMAPPED; + if ((make_dev_alias_p(MAKEDEV_CHECKNAME|MAKEDEV_WAITOK, + &adev, dev, "%s", buf)) != 0) + printf("Warning: unable to create device " + "alias %s\n", buf); break; } } @@ -263,6 +264,7 @@ g_dev_taste(struct g_class *mp, struct g_provider *pp, int insist __unused) if (adev != NULL) { adev->si_iosize_max = MAXPHYS; adev->si_drv2 = cp; + adev->si_flags |= SI_UNMAPPED; } g_dev_attrchanged(cp, "GEOM::physpath"); |