patch-2.3.16 linux/mm/swap_state.c
Next file: linux/mm/swapfile.c
Previous file: linux/mm/slab.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Mon Aug 30 13:47:18 1999
- Orig file:
v2.3.15/linux/mm/swap_state.c
- Orig date:
Mon Aug 9 10:27:50 1999
diff -u --recursive --new-file v2.3.15/linux/mm/swap_state.c linux/mm/swap_state.c
@@ -214,8 +214,6 @@
page_address(page), page_count(page));
#endif
PageClearSwapCache(page);
- if (inode->i_op->flushpage)
- inode->i_op->flushpage(inode, page, 0);
remove_inode_page(page);
}
@@ -239,6 +237,15 @@
swap_free (entry);
}
+static void delete_from_swap_cache_nolock(struct page *page)
+{
+ if (!swapper_inode.i_op->flushpage ||
+ swapper_inode.i_op->flushpage(&swapper_inode, page, 0))
+ lru_cache_del(page);
+
+ __delete_from_swap_cache(page);
+}
+
/*
* This must be called only on pages that have
* been verified to be in the swap cache.
@@ -247,7 +254,7 @@
{
lock_page(page);
- __delete_from_swap_cache(page);
+ delete_from_swap_cache_nolock(page);
UnlockPage(page);
page_cache_release(page);
@@ -267,9 +274,7 @@
*/
lock_page(page);
if (PageSwapCache(page) && !is_page_shared(page)) {
- long entry = page->offset;
- remove_from_swap_cache(page);
- swap_free(entry);
+ delete_from_swap_cache_nolock(page);
page_cache_release(page);
}
UnlockPage(page);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)