]> git.karo-electronics.de Git - karo-tx-linux.git/commit
Make the pagevec_lookup loops in truncate_inode_pages_range(),
authorHugh Dickins <hughd@google.com>
Sat, 16 Jul 2011 13:30:41 +0000 (23:30 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 26 Jul 2011 05:04:38 +0000 (15:04 +1000)
commit9a2e1886e0bd39ec174eb88f6f8951b78e1bfb2c
tree7a63d72d7e6905e64bc93c15d9dc9264e93d6a08
parent6663787f4563ed2367911f535518cc897d18eb41
Make the pagevec_lookup loops in truncate_inode_pages_range(),
invalidate_mapping_pages() and invalidate_inode_pages2_range() more
consistent with each other.

They were relying upon page->index of an unlocked page, but apologizing
for it: accept it, embrace it, add comments and WARN_ONs, and simplify the
index handling.

invalidate_inode_pages2_range() had special handling for a wrapped
page->index + 1 = 0 case; but MAX_LFS_FILESIZE doesn't let us anywhere
near there, and a corrupt page->index in the radix_tree could cause more
trouble than that would catch.  Remove that wrapped handling.

invalidate_inode_pages2_range() uses min() to limit the pagevec_lookup
when near the end of the range: copy that into the other two, although
it's less useful than you might think (it limits the use of the buffer,
rather than the indices looked up).

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/filemap.c
mm/truncate.c