diff options
Diffstat (limited to 'sys/geom/geom_dev.c')
-rw-r--r-- | sys/geom/geom_dev.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index 4abbfc0..eeb3b09 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) { |