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/