diff options
author | Ying Han <yinghan@google.com> | 2011-05-24 20:12:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-25 11:39:26 -0400 |
commit | 1495f230fa7750479c79e3656286b9183d662077 (patch) | |
tree | e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5 /fs/mbcache.c | |
parent | a09ed5e00084448453c8bada4dcd31e5fbfc2f21 (diff) |
vmscan: change shrinker API by passing shrink_control struct
Change each shrinker's API by consolidating the existing parameters into
shrink_control struct. This will simplify any further features added w/o
touching each file of shrinker.
[akpm@linux-foundation.org: fix build]
[akpm@linux-foundation.org: fix warning]
[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]
[akpm@linux-foundation.org: fix xfs warning]
[akpm@linux-foundation.org: update gfs2]
Signed-off-by: Ying Han <yinghan@google.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Acked-by: Pavel Emelyanov <xemul@openvz.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/mbcache.c')
-rw-r--r-- | fs/mbcache.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/mbcache.c b/fs/mbcache.c index 2f174be06555..8c32ef3ba88e 100644 --- a/fs/mbcache.c +++ b/fs/mbcache.c | |||
@@ -90,7 +90,8 @@ static DEFINE_SPINLOCK(mb_cache_spinlock); | |||
90 | * What the mbcache registers as to get shrunk dynamically. | 90 | * What the mbcache registers as to get shrunk dynamically. |
91 | */ | 91 | */ |
92 | 92 | ||
93 | static int mb_cache_shrink_fn(struct shrinker *shrink, int nr_to_scan, gfp_t gfp_mask); | 93 | static int mb_cache_shrink_fn(struct shrinker *shrink, |
94 | struct shrink_control *sc); | ||
94 | 95 | ||
95 | static struct shrinker mb_cache_shrinker = { | 96 | static struct shrinker mb_cache_shrinker = { |
96 | .shrink = mb_cache_shrink_fn, | 97 | .shrink = mb_cache_shrink_fn, |
@@ -156,18 +157,19 @@ forget: | |||
156 | * gets low. | 157 | * gets low. |
157 | * | 158 | * |
158 | * @shrink: (ignored) | 159 | * @shrink: (ignored) |
159 | * @nr_to_scan: Number of objects to scan | 160 | * @sc: shrink_control passed from reclaim |
160 | * @gfp_mask: (ignored) | ||
161 | * | 161 | * |
162 | * Returns the number of objects which are present in the cache. | 162 | * Returns the number of objects which are present in the cache. |
163 | */ | 163 | */ |
164 | static int | 164 | static int |
165 | mb_cache_shrink_fn(struct shrinker *shrink, int nr_to_scan, gfp_t gfp_mask) | 165 | mb_cache_shrink_fn(struct shrinker *shrink, struct shrink_control *sc) |
166 | { | 166 | { |
167 | LIST_HEAD(free_list); | 167 | LIST_HEAD(free_list); |
168 | struct mb_cache *cache; | 168 | struct mb_cache *cache; |
169 | struct mb_cache_entry *entry, *tmp; | 169 | struct mb_cache_entry *entry, *tmp; |
170 | int count = 0; | 170 | int count = 0; |
171 | int nr_to_scan = sc->nr_to_scan; | ||
172 | gfp_t gfp_mask = sc->gfp_mask; | ||
171 | 173 | ||
172 | mb_debug("trying to free %d entries", nr_to_scan); | 174 | mb_debug("trying to free %d entries", nr_to_scan); |
173 | spin_lock(&mb_cache_spinlock); | 175 | spin_lock(&mb_cache_spinlock); |