Commit 5f438dd3 authored by Alan Somers's avatar Alan Somers
Browse files

ses: don't panic if disk elements have really weird descriptors

SES allows element descriptors to contain characters like spaces and
quotes that devfs does not allow to appear in device aliases.  Since SES
element descriptors are outside of the kernel's control, we should
gracefully handle a failure to create a device physical path alias.

PR:		264513
Reported by:	Yuri <yuri@aetern.org>
Reviewed by:	imp, mav
Sponsored by:	Axcient
MFC after:	2 weeks
parent 1f1e2261
......@@ -457,8 +457,9 @@ pass_add_physpath(void *context, int pending)
"GEOM::physpath", periph->path) == 0
&& strlen(physpath) != 0) {
mtx_unlock(mtx);
make_dev_physpath_alias(MAKEDEV_WAITOK, &softc->alias_dev,
softc->dev, softc->alias_dev, physpath);
make_dev_physpath_alias(MAKEDEV_WAITOK | MAKEDEV_CHECKNAME,
&softc->alias_dev, softc->dev,
softc->alias_dev, physpath);
mtx_lock(mtx);
}
......
......@@ -273,8 +273,8 @@ g_dev_set_physpath(struct g_consumer *cp)
dev = sc->sc_dev;
old_alias_dev = sc->sc_alias;
alias_devp = (struct cdev **)&sc->sc_alias;
make_dev_physpath_alias(MAKEDEV_WAITOK, alias_devp, dev,
old_alias_dev, physpath);
make_dev_physpath_alias(MAKEDEV_WAITOK | MAKEDEV_CHECKNAME,
alias_devp, dev, old_alias_dev, physpath);
} else if (sc->sc_alias) {
destroy_dev((struct cdev *)sc->sc_alias);
sc->sc_alias = NULL;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment