diff -urpN -X /home/fletch/.diff.exclude 140-objrmap/mm/mmap.c 141-no_vma_sort/mm/mmap.c --- 140-objrmap/mm/mmap.c Sun Apr 20 21:24:43 2003 +++ 141-no_vma_sort/mm/mmap.c Sun Apr 20 21:28:04 2003 @@ -311,23 +311,14 @@ static inline void __vma_link_file(struc if (file) { struct inode * inode = file->f_dentry->d_inode; struct address_space *mapping = inode->i_mapping; - struct list_head *vmlist, *vmhead; if (vma->vm_flags & VM_DENYWRITE) atomic_dec(&inode->i_writecount); if (vma->vm_flags & VM_SHARED) - vmhead = &mapping->i_mmap_shared; + list_add_tail(&vma->shared, &mapping->i_mmap_shared); else - vmhead = &mapping->i_mmap; - - list_for_each(vmlist, vmhead) { - struct vm_area_struct *vmtemp; - vmtemp = list_entry(vmlist, struct vm_area_struct, shared); - if (vmtemp->vm_pgoff >= vma->vm_pgoff) - break; - } - list_add_tail(&vma->shared, vmlist); + list_add_tail(&vma->shared, &mapping->i_mmap); } } diff -urpN -X /home/fletch/.diff.exclude 140-objrmap/mm/rmap.c 141-no_vma_sort/mm/rmap.c --- 140-objrmap/mm/rmap.c Sun Apr 20 21:24:43 2003 +++ 141-no_vma_sort/mm/rmap.c Sun Apr 20 21:25:01 2003 @@ -220,16 +220,12 @@ page_referenced_obj(struct page *page) if (down_trylock(&mapping->i_shared_sem)) return 1; - list_for_each_entry(vma, &mapping->i_mmap, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; + list_for_each_entry(vma, &mapping->i_mmap, shared) referenced += page_referenced_obj_one(vma, page); - } - list_for_each_entry(vma, &mapping->i_mmap_shared, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; + + list_for_each_entry(vma, &mapping->i_mmap_shared, shared) referenced += page_referenced_obj_one(vma, page); - } + up(&mapping->i_shared_sem); return referenced; @@ -529,16 +525,12 @@ try_to_unmap_obj(struct page *page) return ret; list_for_each_entry(vma, &mapping->i_mmap, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; ret = try_to_unmap_obj_one(vma, page); if (ret == SWAP_FAIL || !page->pte.mapcount) goto out; } list_for_each_entry(vma, &mapping->i_mmap_shared, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; ret = try_to_unmap_obj_one(vma, page); if (ret == SWAP_FAIL || !page->pte.mapcount) goto out; @@ -797,8 +789,6 @@ int page_convert_anon(struct page *page) pte_chain_unlock(page); list_for_each_entry(vma, &mapping->i_mmap, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; if (!pte_chain) { pte_chain = pte_chain_alloc(GFP_KERNEL); if (!pte_chain) { @@ -817,8 +807,6 @@ int page_convert_anon(struct page *page) spin_unlock(&vma->vm_mm->page_table_lock); } list_for_each_entry(vma, &mapping->i_mmap_shared, shared) { - if (vma->vm_pgoff > (page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT))) - break; if (!pte_chain) { pte_chain = pte_chain_alloc(GFP_KERNEL); if (!pte_chain) {