From: Martin Schwidefsky <schwidefsky@de.ibm.com>

Ok, its just the revert of the page_cache_release delta.



---

 mm/rmap.c |    3 +--
 1 files changed, 1 insertion(+), 2 deletions(-)

diff -puN mm/rmap.c~s390-14-rmap-optimisation-2 mm/rmap.c
--- 25/mm/rmap.c~s390-14-rmap-optimisation-2	2004-01-09 11:03:25.000000000 -0800
+++ 25-akpm/mm/rmap.c	2004-01-09 11:03:25.000000000 -0800
@@ -361,6 +361,7 @@ static int try_to_unmap_one(struct page 
 		set_page_dirty(page);
 
 	mm->rss--;
+	page_cache_release(page);
 	ret = SWAP_SUCCESS;
 
 out_unlock:
@@ -401,7 +402,6 @@ int try_to_unmap(struct page * page)
 		if (ret == SWAP_SUCCESS) {
 			if (page_test_and_clear_dirty(page))
 				set_page_dirty(page);
-			page_cache_release(page);
 			page->pte.direct = 0;
 			ClearPageDirect(page);
 		}
@@ -441,7 +441,6 @@ int try_to_unmap(struct page * page)
 				if (page->pte.direct == 0 &&
 				    page_test_and_clear_dirty(page))
 					set_page_dirty(page);
-				page_cache_release(page);
 				break;
 			case SWAP_AGAIN:
 				/* Skip this pte, remembering status. */

_