From: Andrew Morton Cc: Eric Sandeen Signed-off-by: Andrew Morton --- fs/buffer.c | 1 + mm/truncate.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff -puN fs/buffer.c~clear_buffer_uptodate-in-discard_buffer-check fs/buffer.c --- devel/fs/buffer.c~clear_buffer_uptodate-in-discard_buffer-check 2005-11-05 02:23:22.000000000 -0800 +++ devel-akpm/fs/buffer.c 2005-11-05 02:23:22.000000000 -0800 @@ -1552,6 +1552,7 @@ static inline void discard_buffer(struct clear_buffer_dirty(bh); bh->b_bdev = NULL; clear_buffer_uptodate(bh); + WARN_ON(bh->b_page && PageUptodate(bh->b_page)); clear_buffer_mapped(bh); clear_buffer_req(bh); clear_buffer_new(bh); diff -puN mm/truncate.c~clear_buffer_uptodate-in-discard_buffer-check mm/truncate.c --- devel/mm/truncate.c~clear_buffer_uptodate-in-discard_buffer-check 2005-11-05 02:23:22.000000000 -0800 +++ devel-akpm/mm/truncate.c 2005-11-05 02:23:22.000000000 -0800 @@ -39,11 +39,11 @@ truncate_complete_page(struct address_sp if (page->mapping != mapping) return; + ClearPageUptodate(page); if (PagePrivate(page)) do_invalidatepage(page, 0); clear_page_dirty(page); - ClearPageUptodate(page); ClearPageMappedToDisk(page); remove_from_page_cache(page); page_cache_release(page); /* pagecache ref */ _