mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
mm/huge_memory.c: minor lock simplification in __khugepaged_exit
The lock is released first thing in all three branches. Simplify this by unconditionally releasing lock and remove else clause which was only there to be sure lock was released. Signed-off-by: Chris Wright <chrisw@sous-sol.org> Reviewed-by: Michal Hocko <mhocko@suse.cz> Cc: Andrea Arcangeli <aarcange@redhat.com> Acked-by: Johannes Weiner <jweiner@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
1bb36fbd4d
commit
d788e80a8c
@ -1596,14 +1596,13 @@ void __khugepaged_exit(struct mm_struct *mm)
|
||||
list_del(&mm_slot->mm_node);
|
||||
free = 1;
|
||||
}
|
||||
spin_unlock(&khugepaged_mm_lock);
|
||||
|
||||
if (free) {
|
||||
spin_unlock(&khugepaged_mm_lock);
|
||||
clear_bit(MMF_VM_HUGEPAGE, &mm->flags);
|
||||
free_mm_slot(mm_slot);
|
||||
mmdrop(mm);
|
||||
} else if (mm_slot) {
|
||||
spin_unlock(&khugepaged_mm_lock);
|
||||
/*
|
||||
* This is required to serialize against
|
||||
* khugepaged_test_exit() (which is guaranteed to run
|
||||
@ -1614,8 +1613,7 @@ void __khugepaged_exit(struct mm_struct *mm)
|
||||
*/
|
||||
down_write(&mm->mmap_sem);
|
||||
up_write(&mm->mmap_sem);
|
||||
} else
|
||||
spin_unlock(&khugepaged_mm_lock);
|
||||
}
|
||||
}
|
||||
|
||||
static void release_pte_page(struct page *page)
|
||||
|
Loading…
Reference in New Issue
Block a user