diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index 95947567be7b..1f5ebba91343 100644 --- a/sys/fs/specfs/spec_vnops.c +++ b/sys/fs/specfs/spec_vnops.c @@ -504,7 +504,7 @@ spec_xstrategy(struct vnode *vp, struct buf *bp) ("No strategy on dev %s responsible for buffer %p\n", devtoname(bp->b_dev), bp)); - if (dsw->d_flags & D_NOGIANT) { + if ((dsw->d_flags & D_NOGIANT) && !(bp->b_flags & B_KEEPGIANT)) { DROP_GIANT(); DEV_STRATEGY(bp); PICKUP_GIANT();