diff -ur v2.4.3/mm/swap_state.c work-2.4.3/mm/swap_state.c --- v2.4.3/mm/swap_state.c Fri Dec 29 18:04:27 2000 +++ work-2.4.3/mm/swap_state.c Thu Apr 5 13:10:27 2001 @@ -140,10 +140,9 @@ /* * If we are the only user, then try to free up the swap cache. */ - if (PageSwapCache(page) && !TryLockPage(page)) { - if (!is_page_shared(page)) { + if (!TryLockPage(page)) { + if (PageSwapCache(page) && !is_page_shared(page)) delete_from_swap_cache_nolock(page); - } UnlockPage(page); } page_cache_release(page);