===== fs/xfs/linux-2.6/xfs_buf.c 1.116 vs edited ===== --- 1.116/fs/xfs/linux-2.6/xfs_buf.c 2004-05-28 03:45:07 +02:00 +++ edited/fs/xfs/linux-2.6/xfs_buf.c 2004-06-24 14:13:12 +02:00 @@ -310,7 +310,15 @@ { PB_TRACE(bp, "free", 0); + ASSERT(list_empty(&pb->pb_list)); ASSERT(list_empty(&bp->pb_hash_list)); + ASSERT(!(bp->pb_flags & PBF_DELWRI)); + + if (!bp->pb_pages) { + printk("pagebuf without pb_pages?\n"); + dump_stack(); + goto out; + } if (bp->pb_flags & _PBF_PAGE_CACHE) { uint i; @@ -331,6 +339,7 @@ _pagebuf_free_pages(bp); } + out: pagebuf_deallocate(bp); }