diff options
author | pjd <pjd@FreeBSD.org> | 2012-09-01 10:52:19 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2012-09-01 10:52:19 +0000 |
commit | 12303b5db53ad5e4e7600440f16031789eb98c64 (patch) | |
tree | f08be95f1964b7c72e4a47e86745f071ba7bf17d /sys/geom | |
parent | ae6b2b1d419f36550398d995ee6bea842b919ff7 (diff) | |
download | FreeBSD-src-12303b5db53ad5e4e7600440f16031789eb98c64.zip FreeBSD-src-12303b5db53ad5e4e7600440f16031789eb98c64.tar.gz |
Allow to pass providers with /dev/ prefix to g_provider_by_name().
MFC after: 3 days
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/geom_subr.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/geom/geom_subr.c b/sys/geom/geom_subr.c index 2126ed7..fb8e69a 100644 --- a/sys/geom/geom_subr.c +++ b/sys/geom/geom_subr.c @@ -686,6 +686,10 @@ g_resize_provider(struct g_provider *pp, off_t size) g_post_event(g_resize_provider_event, hh, M_WAITOK, NULL); } +#ifndef _PATH_DEV +#define _PATH_DEV "/dev/" +#endif + struct g_provider * g_provider_by_name(char const *arg) { @@ -693,6 +697,9 @@ g_provider_by_name(char const *arg) struct g_geom *gp; struct g_provider *pp; + if (strncmp(arg, _PATH_DEV, sizeof(_PATH_DEV) - 1) == 0) + arg += sizeof(_PATH_DEV) - 1; + LIST_FOREACH(cp, &g_classes, class) { LIST_FOREACH(gp, &cp->geom, geom) { LIST_FOREACH(pp, &gp->provider, provider) { @@ -701,6 +708,7 @@ g_provider_by_name(char const *arg) } } } + return (NULL); } |