1. 22 Dec, 2006 36 commits
  2. 21 Dec, 2006 4 commits
    • Andrew Morton's avatar
      [PATCH] truncate: clear page dirtiness before running try_to_free_buffers() · 3e67c098
      Andrew Morton authored
      truncate presently invalidates the dirty page's buffer_heads then shoots down
      the page.  But try_to_free_buffers() will now bale out because the page is
      dirty.
      
      Net effect: the LRU gets filled with dirty pages which have invalidated
      buffer_heads attached.  They have no ->mapping and hence cannot be cleaned.
      The machine leaks memory at an enormous rate.
      
      Fix this by cleaning the page before running try_to_free_buffers(), so
      try_to_free_buffers() can do its work.
      
      Also, remember to do dirty-page-acoounting in cancel_dirty_page() so the
      machine won't wedge up trying to write non-existent dirty pages.
      
      Probably still wrong, but now less so.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3e67c098
    • David Chinner's avatar
      [PATCH] Fix XFS after clear_page_dirty() removal · 92132021
      David Chinner authored
      XFS appears to call clear_page_dirty to get the mapping tree dirty tag
      set correctly at the same time the page dirty flag is cleared.  I note
      that this can be done by set_page_writeback() if we clear the dirty flag
      on the page first when we are writing back the entire page.
      
      Hence it seems to me that the XFS call to clear_page_dirty() could
      easily be substituted by clear_page_dirty_for_io() followed by a call to
      set_page_writeback() to get the mapping tree tags set correctly after
      the page has been marked clean.
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      92132021
    • Miklos Szeredi's avatar
      [PATCH] fuse: remove clear_page_dirty() call · 9280f682
      Miklos Szeredi authored
      The use by FUSE was just a remnant of an optimization from the time
      when writable mappings were supported.
      
      Now FUSE never actually allows the creation of dirty pages, so this
      invocation of clear_page_dirty() is effectively a no-op.
      Signed-off-by: default avatarMiklos Szeredi <miklos@szeredi.hu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9280f682
    • Dave Kleikamp's avatar
      [PATCH] Fix JFS after clear_page_dirty() removal · d0e671a9
      Dave Kleikamp authored
      This patch removes some questionable code that attempted to make a
      no-longer-used page easier to reclaim.
      
      Calling metapage_writepage against such a page will not result in any
      I/O being performed, so removing this code shouldn't be a big deal.
      
      [ It's likely that we could have just replaced the "clear_page_dirty()"
        call with a call to "cancel_dirty_page()" instead, but in the
        meantime this is cleaner and simpler anyway, so unless there is some
        overriding reason (and Dave implies there isn't) I'll just use this
        patch as-is.			- Linus ]
      Signed-off-by: default avatarDave Kleikamp <shaggy@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d0e671a9