aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2017-10-26 10:18:31 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2017-10-26 10:18:31 +0000
commit0d73fface2cdd48cfab8a72637282cdee0807198 (patch)
tree36e39c139b869261f50cf6c08bd04ed0f2069014 /sys
parent4001fcbe0aca256bf9f8166566609b0f45b9ce13 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/geom/mountver/g_mountver.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/geom/mountver/g_mountver.c b/sys/geom/mountver/g_mountver.c
index cb4465b87ea3..5f580a1ef12d 100644
--- a/sys/geom/mountver/g_mountver.c
+++ b/sys/geom/mountver/g_mountver.c
@@ -257,7 +257,7 @@ g_mountver_create(struct gctl_req *req, struct g_class *mp, struct g_provider *p
}
gp = g_new_geomf(mp, "%s", name);
sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO);
- mtx_init(&sc->sc_mtx, "gmountver", NULL, MTX_DEF);
+ mtx_init(&sc->sc_mtx, "gmountver", NULL, MTX_RECURSE);
TAILQ_INIT(&sc->sc_queue);
sc->sc_provider_name = strdup(pp->name, M_GEOM);
gp->softc = sc;
@@ -270,6 +270,7 @@ g_mountver_create(struct gctl_req *req, struct g_class *mp, struct g_provider *p
newpp = g_new_providerf(gp, "%s", gp->name);
newpp->mediasize = pp->mediasize;
newpp->sectorsize = pp->sectorsize;
+ newpp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE;
if ((pp->flags & G_PF_ACCEPT_UNMAPPED) != 0) {
G_MOUNTVER_DEBUG(0, "Unmapped supported for %s.", gp->name);
@@ -280,6 +281,7 @@ g_mountver_create(struct gctl_req *req, struct g_class *mp, struct g_provider *p
}
cp = g_new_consumer(gp);
+ cp->flags |= G_CF_DIRECT_SEND | G_CF_DIRECT_RECEIVE;
error = g_attach(cp, pp);
if (error != 0) {
gctl_error(req, "Cannot attach to provider %s.", pp->name);