- Properly check against B_DELWRI and B_NEEDSGIANT. This check was

incorrectly written and caused some !NEEDSGIANT buffers to be put in
   the NEEDSGIANT queue.

Sponsored by:	Isilon Systems, Inc.
This commit is contained in:
Jeff Roberson 2006-04-04 06:44:21 +00:00
parent 08ed1329d1
commit 4b24e4210e

View File

@ -1357,7 +1357,8 @@ brelse(struct buf *bp)
TAILQ_INSERT_HEAD(&bufqueues[QUEUE_CLEAN], bp, b_freelist);
/* remaining buffers */
} else {
if (bp->b_flags & (B_DELWRI|B_NEEDSGIANT))
if ((bp->b_flags & (B_DELWRI|B_NEEDSGIANT)) ==
(B_DELWRI|B_NEEDSGIANT))
bp->b_qindex = QUEUE_DIRTY_GIANT;
if (bp->b_flags & B_DELWRI)
bp->b_qindex = QUEUE_DIRTY;