aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/specfs/spec_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/fs/specfs/spec_vnops.c')
-rw-r--r--sys/fs/specfs/spec_vnops.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index 2940f404b779..ba812293e4ac 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -731,6 +731,8 @@ spec_getpages(ap)
cnt.v_vnodein++;
cnt.v_vnodepgsin += pcount;
+ mtx_unlock(&vm_mtx);
+ mtx_lock(&Giant);
/* Do the input. */
BUF_STRATEGY(bp);
@@ -741,6 +743,8 @@ spec_getpages(ap)
tsleep(bp, PVM, "spread", 0);
splx(s);
+ mtx_unlock(&Giant);
+ mtx_lock(&vm_mtx);
if ((bp->b_ioflags & BIO_ERROR) != 0) {
if (bp->b_error)