aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-05-22 08:00:31 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-05-22 08:00:31 -0700
commite6dfd92e48a0d3d2738e30dc762233d85ac98612 (patch)
treebc59b94b917f101eb803363991d670876cff6e94 /mm
parent8ea360d493ec1b969dc08a7d1413033eb52079de (diff)
downloadhistory-e6dfd92e48a0d3d2738e30dc762233d85ac98612.tar.gz
[PATCH] Make sync_page use swapper_space again
Revert recent changes to sync_page(). Now that page_mapping() returns &swapper_space for swapcache pages we don't need to test for PageSwapCache in sync_page().
Diffstat (limited to 'mm')
-rw-r--r--mm/filemap.c11
-rw-r--r--mm/swap_state.c1
2 files changed, 6 insertions, 6 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index b4dd01c24fb3c0..1dcf80bf791818 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -121,14 +121,13 @@ static inline int sync_page(struct page *page)
{
struct address_space *mapping;
+ /*
+ * FIXME, fercrissake. What is this barrier here for?
+ */
smp_mb();
mapping = page_mapping(page);
- if (mapping) {
- if (mapping->a_ops && mapping->a_ops->sync_page)
- return mapping->a_ops->sync_page(page);
- } else if (PageSwapCache(page)) {
- swap_unplug_io_fn(NULL, page);
- }
+ if (mapping && mapping->a_ops && mapping->a_ops->sync_page)
+ return mapping->a_ops->sync_page(page);
return 0;
}
diff --git a/mm/swap_state.c b/mm/swap_state.c
index cc11edc2aca1b5..600ab2ef090b3b 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -23,6 +23,7 @@
*/
static struct address_space_operations swap_aops = {
.writepage = swap_writepage,
+ .sync_page = block_sync_page,
.set_page_dirty = __set_page_dirty_nobuffers,
};