From f4a3d9da6e1e35cf8ee8245fda55fd94d42408fd Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Tue, 5 Aug 2003 06:43:56 +0000 Subject: [PATCH] Only drop Giant around the drivers ->d_strategy() if the buffer is not marked to prevent this. --- sys/fs/specfs/spec_vnops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c index 95947567be7..1f5ebba9134 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();