浏览代码

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>
Hugh Dickins 14 年之前
父节点
当前提交
d0823576bf
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      mm/truncate.c

+ 1 - 1
mm/truncate.c

@@ -269,7 +269,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
 			index = start;
 			index = start;
 			continue;
 			continue;
 		}
 		}
-		if (pvec.pages[0]->index > end) {
+		if (index == start && pvec.pages[0]->index > end) {
 			pagevec_release(&pvec);
 			pagevec_release(&pvec);
 			break;
 			break;
 		}
 		}