[PATCH] fix dirty page management
authorAndrew Morton <akpm@zip.com.au>
Sun, 19 May 2002 09:21:10 +0000 (02:21 -0700)
committerArnaldo Carvalho de Melo <acme@conectiva.com.br>
Sun, 19 May 2002 09:21:10 +0000 (02:21 -0700)
commit0f9268b8c63c607c07d2fa47a539e437996fd01c
treefdb1cabf410b011b8604daae1845beca5672e6d6
parent43152186ec28f3d4adf2a79ff8becacdfca9c82d
[PATCH] fix dirty page management

This fixes a bug in ext3 - when ext3 decides that it wants to fail its
writepage(), it is running SetPageDirty().  But ->writepage has just put
the page on ->clean_pages().  The page ends up dirty, on ->clean_pages
and the normal writeback paths don't know about it any more.

So run set_page_dirty() instead, to place the page back on the dirty
list.

And in move_from_swap_cache(), shuffle the page across to ->dirty_pages
so that it's eligible for writeout.  ___add_to_page_cache() forgets to
look at the page state when deciding which list to attach it to.

All SetPageDirty() callers otherwise look OK.
fs/ext3/inode.c
mm/filemap.c
mm/swap_state.c
mm/swapfile.c