aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
authorHugh Dickins <hugh@veritas.com>2005-10-29 21:16:15 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-30 00:40:39 -0400
commit9e9bef07ce5a342aa6246ebc5c20829d0d5d63d0 (patch)
tree6f7286ebbb2c4b8af7bb04897a64b054c67faa4a /mm/memory.c
parent86d912f41dca32eca8827f2f878139735e69dc28 (diff)
[PATCH] mm: do_swap_page race major
Small adjustment: do_swap_page should report its !pte_same race as a major fault if it had to read into swap cache, because whatever raced with it will have found page already in cache and reported minor fault. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/mm/memory.c b/mm/memory.c
index bc6296398f8b..a25ee1d3e20a 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1728,10 +1728,8 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
1728 */ 1728 */
1729 spin_lock(&mm->page_table_lock); 1729 spin_lock(&mm->page_table_lock);
1730 page_table = pte_offset_map(pmd, address); 1730 page_table = pte_offset_map(pmd, address);
1731 if (unlikely(!pte_same(*page_table, orig_pte))) { 1731 if (unlikely(!pte_same(*page_table, orig_pte)))
1732 ret = VM_FAULT_MINOR;
1733 goto out_nomap; 1732 goto out_nomap;
1734 }
1735 1733
1736 if (unlikely(!PageUptodate(page))) { 1734 if (unlikely(!PageUptodate(page))) {
1737 ret = VM_FAULT_SIGBUS; 1735 ret = VM_FAULT_SIGBUS;