Index: linux-2.6.15-rc3-mm1/mm/mempolicy.c
===================================================================
--- linux-2.6.15-rc3-mm1.orig/mm/mempolicy.c	2005-12-01 09:35:46.000000000 -0800
+++ linux-2.6.15-rc3-mm1/mm/mempolicy.c	2005-12-01 09:41:38.000000000 -0800
@@ -294,7 +294,7 @@ static inline int check_pgd_range(struct
 static inline int vma_migratable(struct vm_area_struct *vma)
 {
 	if (vma->vm_flags & (
-		VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP))
+		VM_IO|VM_HUGETLB|VM_PFNMAP))
 		return 0;
 	return 1;
 }
Index: linux-2.6.15-rc3-mm1/mm/vmscan.c
===================================================================
--- linux-2.6.15-rc3-mm1.orig/mm/vmscan.c	2005-12-01 09:35:46.000000000 -0800
+++ linux-2.6.15-rc3-mm1/mm/vmscan.c	2005-12-01 09:42:17.000000000 -0800
@@ -963,19 +963,6 @@ redo:
 			goto unlock_both;
 		}
 
-		/*
-		 * On early passes with mapped pages simply
-		 * retry. There may be a lock held for some
-		 * buffers that may go away. Later
-		 * swap them out.
-		 */
-		if (pass > 4) {
-			unlock_page(newpage);
-			newpage = NULL;
-			rc = swap_page(page);
-			goto next;
-		}
-
 unlock_both:
 		unlock_page(newpage);