--- linux-2.4.0-test8/mm/filemap.c Sat Sep 9 02:35:09 2000 +++ linux-2.4.0-test8-new/mm/filemap.c Thu Sep 14 03:14:06 2000 @@ -189,16 +189,14 @@ unsigned long start; start = (lstart + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; + head = &mapping->pages; repeat: - head = &mapping->pages; spin_lock(&pagecache_lock); - curr = head->next; - while (curr != head) { + for (curr = head->next; curr != head; curr = curr->next) { unsigned long offset; page = list_entry(curr, struct page, list); - curr = curr->next; offset = page->index; /* Is one of the pages to truncate? */