xfs
[Top] [All Lists]

TAKE 960028 - XFS tripping bug in cancel_dirty_pages in 2.6.20-rc3

To: xfs@xxxxxxxxxxx, sgi.bugs.xfs@xxxxxxxxxxxx
Subject: TAKE 960028 - XFS tripping bug in cancel_dirty_pages in 2.6.20-rc3
From: dgc@xxxxxxx (David Chinner)
Date: Thu, 11 Jan 2007 17:23:46 +1100 (EST)
Sender: xfs-bounce@xxxxxxxxxxx
Unmap pages before removing them from the page cache.

The new cancel_dirty_pages() code found that XFS was removing
page from the page cache that had dirty page table entries.
XFS invalidates page cache pages via internal interfaces which
are implemented via truncate_inode_pages which does not remove
the page mapping first.

Switch to using invalidate_inode_pages2_range() which does almost
the same thing except it also removes page table mappings as
expected by cancel_dirty_pages.

Date:  Thu Jan 11 17:23:10 AEDT 2007
Workarea:  chook.melbourne.sgi.com:/build/dgc/isms/2.6.x-xfs
Inspected by:  hch@xxxxxxxxxxxxx,lachlan

The following file(s) were checked into:
  longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb


Modid:  xfs-linux-melb:xfs-kern:27909a
fs/xfs/linux-2.6/xfs_fs_subr.c - 1.48 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_fs_subr.c.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h
        - Convert truncate_inode_pages to invalidate_inode_pages2_range
          so that page table mappings are removed before we remove the
          pages from the page cache.



<Prev in Thread] Current Thread [Next in Thread>
  • TAKE 960028 - XFS tripping bug in cancel_dirty_pages in 2.6.20-rc3, David Chinner <=