]> Git Repo - linux.git/commit
mm/rmap: extend rmap_walk_xxx() to cope with different cases
authorJoonsoo Kim <[email protected]>
Tue, 21 Jan 2014 23:49:49 +0000 (15:49 -0800)
committerLinus Torvalds <[email protected]>
Wed, 22 Jan 2014 00:19:45 +0000 (16:19 -0800)
commit0dd1c7bbce8d1d142bb25aefaa50262dfd77cb78
treed45df52098c0a8364a3e614096bb3ee184aeb068
parent051ac83adf69eea4f57a97356e4282e395a5fa6d
mm/rmap: extend rmap_walk_xxx() to cope with different cases

There are a lot of common parts in traversing functions, but there are
also a little of uncommon parts in it.  By assigning proper function
pointer on each rmap_walker_control, we can handle these difference
correctly.

Following are differences we should handle.

1. difference of lock function in anon mapping case
2. nonlinear handling in file mapping case
3. prechecked condition:
checking memcg in page_referenced(),
checking VM_SHARE in page_mkclean()
checking temporary vma in try_to_unmap()
4. exit condition:
checking page_mapped() in try_to_unmap()

So, in this patch, I introduce 4 function pointers to handle above
differences.

Signed-off-by: Joonsoo Kim <[email protected]>
Cc: Naoya Horiguchi <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Hillf Danton <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/rmap.h
mm/ksm.c
mm/rmap.c
This page took 0.063889 seconds and 4 git commands to generate.