Re: Question about panic in brelse()

From: Christoph Mallon <christoph.mallon_at_gmx.de>
Date: Tue, 20 Jan 2009 12:54:13 +0100
Christoph Mallon schrieb:
> _at__at_ -1340,7 +1340,8 _at__at_
>          }
>          TAILQ_INSERT_HEAD(&bufqueues[bp->b_qindex], bp, b_freelist);
>      /* buffers with junk contents */
> -    } else if (bp->b_flags & (B_INVAL | B_NOCACHE | B_RELBUF) ||
> +    } else if (bp->b_flags & (B_INVAL | B_RELBUF) ||
> +        ((bp->b_flags & (B_NOCACHE | B_DELWRI)) == B_NOCACHE)
>          (bp->b_ioflags & BIO_ERROR)) {
>          bp->b_flags |= B_INVAL;
>          bp->b_xflags &= ~(BX_BKGRDWRITE | BX_ALTDATA);

I just realised that somehow a || got lost. The diff should read:

_at__at_ -1340,7 +1340,8 _at__at_
  		}
  		TAILQ_INSERT_HEAD(&bufqueues[bp->b_qindex], bp, b_freelist);
  	/* buffers with junk contents */
-	} else if (bp->b_flags & (B_INVAL | B_NOCACHE | B_RELBUF) ||
+	} else if (bp->b_flags & (B_INVAL | B_RELBUF) ||
+	    ((bp->b_flags & (B_NOCACHE | B_DELWRI)) == B_NOCACHE) ||
  	    (bp->b_ioflags & BIO_ERROR)) {
  		bp->b_flags |= B_INVAL;
  		bp->b_xflags &= ~(BX_BKGRDWRITE | BX_ALTDATA);
Received on Tue Jan 20 2009 - 10:54:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:40 UTC