summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_dev.c
diff options
context:
space:
mode:
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 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) {
OpenPOWER on IntegriCloud