Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jan 2009 12:54:13 +0100
From:      Christoph Mallon <christoph.mallon@gmx.de>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Cc:        uwe@grohnwaldt.eu, FreeBSD Hackers <freebsd-hackers@freebsd.org>, miwi@freebsd.org
Subject:   Re: Question about panic in brelse()
Message-ID:  <4975BB65.2020502@gmx.de>
In-Reply-To: <4975AACA.3050906@gmx.de>
References:  <496D94FD.9030300@gmx.de> <4975AACA.3050906@gmx.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Christoph Mallon schrieb:
> @@ -1340,7 +1340,8 @@
>          }
>          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:

@@ -1340,7 +1340,8 @@
  		}
  		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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4975BB65.2020502>