--- 2.3.99-pre3aa1-alpha/mm/filemap.c.~1~ Mon Mar 27 22:44:50 2000 +++ 2.3.99-pre3aa1-alpha/mm/filemap.c Thu Mar 30 16:07:20 2000 @@ -329,20 +329,17 @@ cache_unlock_continue: spin_unlock(&pagecache_lock); unlock_continue: + spin_lock(&pagemap_lru_lock); UnlockPage(page); put_page(page); -dispose_relock_continue: - /* even if the dispose list is local, a truncate_inode_page() - may remove a page from its queue so always - synchronize with the lru lock while accesing the - page->lru field */ - spin_lock(&pagemap_lru_lock); list_add(page_lru, dispose); continue; unlock_noput_continue: + spin_lock(&pagemap_lru_lock); UnlockPage(page); - goto dispose_relock_continue; + list_add(page_lru, dispose); + continue; dispose_continue: list_add(page_lru, dispose);