Only drop Giant around the drivers ->d_strategy() if the buffer is not

marked to prevent this.
This commit is contained in:
Poul-Henning Kamp 2003-08-05 06:43:56 +00:00
parent 8f25d34f31
commit f4a3d9da6e

View File

@ -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();