From: Marcelo Tosatti Gene is hitting this mapping->private_list corruption, with the BUG_ON's it will be clearer what is happening in case others hit the same bug. Signed-off-by: Andrew Morton --- fs/buffer.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-) diff -puN fs/buffer.c~possible-dcache-bug-debugging-patch fs/buffer.c --- 25/fs/buffer.c~possible-dcache-bug-debugging-patch Fri Jun 24 15:22:14 2005 +++ 25-akpm/fs/buffer.c Fri Jun 24 15:22:14 2005 @@ -721,6 +721,8 @@ EXPORT_SYMBOL(mark_buffer_async_write); */ static inline void __remove_assoc_queue(struct buffer_head *bh) { + BUG_ON(bh->b_assoc_buffers.next == NULL); + BUG_ON(bh->b_assoc_buffers.prev == NULL); list_del_init(&bh->b_assoc_buffers); } @@ -994,7 +996,10 @@ int remove_inode_buffers(struct inode *i spin_lock(&buffer_mapping->private_lock); while (!list_empty(list)) { - struct buffer_head *bh = BH_ENTRY(list->next); + struct buffer_head *bh; + + BUG_ON(list->next == NULL); + bh = BH_ENTRY(list->next); if (buffer_dirty(bh)) { ret = 0; break; _