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 --- 25-akpm/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 2004-08-20 00:52:03.859899728 -0700 +++ 25-akpm/fs/buffer.c 2004-08-20 01:04:42.371588424 -0700 @@ -802,6 +802,8 @@ void buffer_insert_list(spinlock_t *lock */ 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); } @@ -1073,7 +1075,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; _