summaryrefslogtreecommitdiffstats
path: root/mm/page_io.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-05-12 21:05:59 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-05-12 21:05:59 +0000
commitba2dacab305c598cd4c34a604f8e276bf5bab5ff (patch)
tree78670a0139bf4d5ace617b29b7eba82bbc74d602 /mm/page_io.c
parentb77bf69998121e689c5e86cc5630d39a0a9ee6ca (diff)
Merge with Linux 2.3.99-pre7 and various other bits.
Diffstat (limited to 'mm/page_io.c')
-rw-r--r--mm/page_io.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mm/page_io.c b/mm/page_io.c
index 23acf5af4..b2b6359d0 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -74,7 +74,7 @@ static int rw_swap_page_base(int rw, swp_entry_t entry, struct page *page, int w
return 0;
}
if (!wait) {
- set_bit(PG_decr_after, &page->flags);
+ SetPageDecrAfter(page);
atomic_inc(&nr_async_pages);
}
@@ -132,6 +132,11 @@ void rw_swap_page_nolock(int rw, swp_entry_t entry, char *buf, int wait)
PAGE_BUG(page);
if (PageSwapCache(page))
PAGE_BUG(page);
+ if (page->mapping)
+ PAGE_BUG(page);
+ /* needs sync_page to wait I/O completation */
+ page->mapping = &swapper_space;
if (!rw_swap_page_base(rw, entry, page, wait))
UnlockPage(page);
+ page->mapping = NULL;
}