ah, my new debug code is buggy.  It is legal to wait upon a zero-ref buffer
if that buffer's page is locked.
diff -puN fs/buffer.c~a fs/buffer.c
--- 25/fs/buffer.c~a	Wed Apr  2 15:41:25 2003
+++ 25-akpm/fs/buffer.c	Wed Apr  2 15:43:02 2003
@@ -123,7 +123,8 @@ void __wait_on_buffer(struct buffer_head
 	wait_queue_head_t *wqh = bh_waitq_head(bh);
 	DEFINE_WAIT(wait);
 
-	if (atomic_read(&bh->b_count) == 0)
+	if (atomic_read(&bh->b_count) == 0 &&
+			(!bh->b_page || !PageLocked(bh->b_page)))
 		buffer_error();
 
 	do {
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/