X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Ftruncate.c;h=4fbe1a2da5fb973acc352b1b17d87ca390aab376;hb=2a383c63ff933a496f19d6559ab54ac14871b7f3;hp=ebf3fcb4115b8c664e54e4c47e02968ed93ab0be;hpb=60f29b1e1600d89aee5e529acb4b276a6650cb8b;p=~andy%2Flinux diff --git a/mm/truncate.c b/mm/truncate.c index ebf3fcb4115..4fbe1a2da5f 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include /* grr. try_to_release_page, @@ -46,7 +47,7 @@ void do_invalidatepage(struct page *page, unsigned long offset) static inline void truncate_partial_page(struct page *page, unsigned partial) { - memclear_highpage_flush(page, partial, PAGE_CACHE_SIZE-partial); + zero_user_page(page, partial, PAGE_CACHE_SIZE - partial, KM_USER0); if (PagePrivate(page)) do_invalidatepage(page, partial); } @@ -375,10 +376,10 @@ int invalidate_inode_pages2_range(struct address_space *mapping, pagevec_init(&pvec, 0); next = start; - while (next <= end && !ret && !wrapped && + while (next <= end && !wrapped && pagevec_lookup(&pvec, mapping, next, min(end - next, (pgoff_t)PAGEVEC_SIZE - 1) + 1)) { - for (i = 0; !ret && i < pagevec_count(&pvec); i++) { + for (i = 0; i < pagevec_count(&pvec); i++) { struct page *page = pvec.pages[i]; pgoff_t page_index;