From: Andrew Morton Cc: Nick Piggin Signed-off-by: Andrew Morton --- fs/buffer.c | 4 ++-- mm/page-writeback.c | 2 +- truncate.c | 0 3 files changed, 3 insertions(+), 3 deletions(-) diff -puN fs/buffer.c~fs-introduce-some-page-buffer-invariants-obnoxiousness fs/buffer.c --- a/fs/buffer.c~fs-introduce-some-page-buffer-invariants-obnoxiousness +++ a/fs/buffer.c @@ -693,7 +693,7 @@ static int __set_page_dirty(struct page write_lock_irq(&mapping->tree_lock); if (page->mapping) { /* Race with truncate? */ - WARN_ON(warn && !PageUptodate(page)); + WARN_ON_ONCE(warn && !PageUptodate(page)); if (mapping_cap_account_dirty(mapping)) { __inc_zone_page_state(page, NR_FILE_DIRTY); @@ -1156,7 +1156,7 @@ __getblk_slow(struct block_device *bdev, */ void fastcall mark_buffer_dirty(struct buffer_head *bh) { - WARN_ON(!buffer_uptodate(bh)); + WARN_ON_ONCE(!buffer_uptodate(bh)); if (!buffer_dirty(bh) && !test_set_buffer_dirty(bh)) __set_page_dirty(bh->b_page, page_mapping(bh->b_page), 0); } diff -puN mm/page-writeback.c~fs-introduce-some-page-buffer-invariants-obnoxiousness mm/page-writeback.c --- a/mm/page-writeback.c~fs-introduce-some-page-buffer-invariants-obnoxiousness +++ a/mm/page-writeback.c @@ -826,7 +826,7 @@ int __set_page_dirty_nobuffers(struct pa mapping2 = page_mapping(page); if (mapping2) { /* Race with truncate? */ BUG_ON(mapping2 != mapping); - WARN_ON(!PagePrivate(page) && !PageUptodate(page)); + WARN_ON_ONCE(!PagePrivate(page) && !PageUptodate(page)); if (mapping_cap_account_dirty(mapping)) { __inc_zone_page_state(page, NR_FILE_DIRTY); task_io_account_write(PAGE_CACHE_SIZE); diff -puN mm/truncate.c~fs-introduce-some-page-buffer-invariants-obnoxiousness mm/truncate.c _