From a5be8ca489b8a6366124282cd46916567ff9440c Mon Sep 17 00:00:00 2001 From: Larry Woodman Date: Thu, 24 Jan 2008 05:49:25 -0800 Subject: [PATCH] --- yaml --- r: 75662 b: refs/heads/master c: c5c99429fa57dcf6e05203ebe3676db1ec646793 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/hugetlb.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 386e330a3555..55c8d297555b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c2f3dabefa73fe3307578553f456e93f0a1bca08 +refs/heads/master: c5c99429fa57dcf6e05203ebe3676db1ec646793 diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index e0fda156f021..db861d8b6c28 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -699,6 +699,11 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, dst_pte = huge_pte_alloc(dst, addr); if (!dst_pte) goto nomem; + + /* If the pagetables are shared don't copy or take references */ + if (dst_pte == src_pte) + continue; + spin_lock(&dst->page_table_lock); spin_lock(&src->page_table_lock); if (!pte_none(*src_pte)) {