summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2011-07-25 17:12:25 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-25 20:57:10 -0700
commitd0823576bf4b8eafce1b56f98613465a0352a376 (patch)
treebfc182422f665b39d7ae703a198ea7144fea122b
parentb85e0effd3dcbf9118b896232f59526ab1a39a74 (diff)
mm: pincer in truncate_inode_pages_range
truncate_inode_pages_range()'s final loop has a nice pincer property, bringing start and end together, squeezing out the last pages. But the range handling missed out on that, just sliding up the range, perhaps letting pages come in behind it. Add one more test to give it the same pincer effect. Signed-off-by: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/truncate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/truncate.c b/mm/truncate.c
index dc459014f777..232eb2736a79 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -269,7 +269,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
index = start;
continue;
}
- if (pvec.pages[0]->index > end) {
+ if (index == start && pvec.pages[0]->index > end) {
pagevec_release(&pvec);
break;
}