diff options
author | Vegard Nossum <vegard.nossum@oracle.com> | 2017-02-27 17:30:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-27 21:43:48 -0500 |
commit | 3fce371bfac2be0396ffc1e763600e6c6b1bb52a (patch) | |
tree | da45267ba334ada341aa13d600848299564751ce /mm/swapfile.c | |
parent | f1f1007644ffc8051a4c11427d58b1967ae7b75a (diff) |
mm: add new mmget() helper
Apart from adding the helper function itself, the rest of the kernel is
converted mechanically using:
git grep -l 'atomic_inc.*mm_users' | xargs sed -i 's/atomic_inc(&\(.*\)->mm_users);/mmget\(\1\);/'
git grep -l 'atomic_inc.*mm_users' | xargs sed -i 's/atomic_inc(&\(.*\)\.mm_users);/mmget\(\&\1\);/'
This is needed for a later patch that hooks into the helper, but might
be a worthwhile cleanup on its own.
(Michal Hocko provided most of the kerneldoc comment.)
Link: http://lkml.kernel.org/r/20161218123229.22952-2-vegard.nossum@oracle.com
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r-- | mm/swapfile.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index 2cac12cc9abe..7a0713b76668 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c | |||
@@ -1671,7 +1671,7 @@ int try_to_unuse(unsigned int type, bool frontswap, | |||
1671 | * that. | 1671 | * that. |
1672 | */ | 1672 | */ |
1673 | start_mm = &init_mm; | 1673 | start_mm = &init_mm; |
1674 | atomic_inc(&init_mm.mm_users); | 1674 | mmget(&init_mm); |
1675 | 1675 | ||
1676 | /* | 1676 | /* |
1677 | * Keep on scanning until all entries have gone. Usually, | 1677 | * Keep on scanning until all entries have gone. Usually, |
@@ -1720,7 +1720,7 @@ int try_to_unuse(unsigned int type, bool frontswap, | |||
1720 | if (atomic_read(&start_mm->mm_users) == 1) { | 1720 | if (atomic_read(&start_mm->mm_users) == 1) { |
1721 | mmput(start_mm); | 1721 | mmput(start_mm); |
1722 | start_mm = &init_mm; | 1722 | start_mm = &init_mm; |
1723 | atomic_inc(&init_mm.mm_users); | 1723 | mmget(&init_mm); |
1724 | } | 1724 | } |
1725 | 1725 | ||
1726 | /* | 1726 | /* |
@@ -1757,8 +1757,8 @@ int try_to_unuse(unsigned int type, bool frontswap, | |||
1757 | struct mm_struct *prev_mm = start_mm; | 1757 | struct mm_struct *prev_mm = start_mm; |
1758 | struct mm_struct *mm; | 1758 | struct mm_struct *mm; |
1759 | 1759 | ||
1760 | atomic_inc(&new_start_mm->mm_users); | 1760 | mmget(new_start_mm); |
1761 | atomic_inc(&prev_mm->mm_users); | 1761 | mmget(prev_mm); |
1762 | spin_lock(&mmlist_lock); | 1762 | spin_lock(&mmlist_lock); |
1763 | while (swap_count(*swap_map) && !retval && | 1763 | while (swap_count(*swap_map) && !retval && |
1764 | (p = p->next) != &start_mm->mmlist) { | 1764 | (p = p->next) != &start_mm->mmlist) { |
@@ -1781,7 +1781,7 @@ int try_to_unuse(unsigned int type, bool frontswap, | |||
1781 | 1781 | ||
1782 | if (set_start_mm && *swap_map < swcount) { | 1782 | if (set_start_mm && *swap_map < swcount) { |
1783 | mmput(new_start_mm); | 1783 | mmput(new_start_mm); |
1784 | atomic_inc(&mm->mm_users); | 1784 | mmget(mm); |
1785 | new_start_mm = mm; | 1785 | new_start_mm = mm; |
1786 | set_start_mm = 0; | 1786 | set_start_mm = 0; |
1787 | } | 1787 | } |