summaryrefslogtreecommitdiff
path: root/sys/geom/geom_dev.c
diff options
context:
space:
mode:
authorUlf Lilleengen <lulf@FreeBSD.org>2008-09-07 13:54:57 +0000
committerUlf Lilleengen <lulf@FreeBSD.org>2008-09-07 13:54:57 +0000
commitf805f204b63aaab5b49c7371deb8c2fd015bd894 (patch)
tree16f2ffcdc41f0c11cebb1b3f34481ddf1a5d05cc /sys/geom/geom_dev.c
parent6f4745d5757e385b06448930a2570371eb2f9a1e (diff)
Notes
Diffstat (limited to 'sys/geom/geom_dev.c')
-rw-r--r--sys/geom/geom_dev.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c
index 4abbfc076904..eeb3b0932a48 100644
--- a/sys/geom/geom_dev.c
+++ b/sys/geom/geom_dev.c
@@ -244,6 +244,7 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread
{
struct g_geom *gp;
struct g_consumer *cp;
+ struct g_provider *pp;
struct g_kerneldump kd;
off_t offset, length, chunk;
int i, error;
@@ -251,6 +252,7 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread
gp = dev->si_drv1;
cp = dev->si_drv2;
+ pp = cp->provider;
error = 0;
KASSERT(cp->acr || cp->acw,
@@ -329,6 +331,11 @@ g_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, struct thread
case DIOCGIDENT:
error = g_io_getattr("GEOM::ident", cp, &i, data);
break;
+ case DIOCGPROVIDERNAME:
+ if (pp == NULL)
+ return (ENOENT);
+ strlcpy(data, pp->name, i);
+ break;
default:
if (cp->provider->geom->ioctl != NULL) {