diff options
author | Colin Cross <ccross@android.com> | 2011-12-20 19:49:53 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-12-21 16:40:24 -0500 |
commit | 33e8fc463eeec29227282e4bd2082f5928d629a5 (patch) | |
tree | 18bc6593ef44cddfe7bfa32d20df04f007e9348c /drivers/staging/android | |
parent | 5154b93b8eceb57bdab4e77030bf21ead15b42e4 (diff) |
ashmem: Fix arguments to ashmem_shrink
The arguments to shrink functions have changed, update
ashmem_shrink to match.
Signed-off-by: Colin Cross <ccross@android.com>
[jstultz: tweaked commit subject]
CC: Brian Swetland <swetland@google.com>
CC: Colin Cross <ccross@android.com>
CC: Arve Hjønnevåg <arve@android.com>
CC: Dima Zavin <dima@android.com>
CC: Robert Love <rlove@google.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/android')
-rw-r--r-- | drivers/staging/android/ashmem.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/ashmem.c index 777e2b257d4..a78ba21e02b 100644 --- a/drivers/staging/android/ashmem.c +++ b/drivers/staging/android/ashmem.c | |||
@@ -355,14 +355,14 @@ out: | |||
355 | * chunks of ashmem regions LRU-wise one-at-a-time until we hit 'nr_to_scan' | 355 | * chunks of ashmem regions LRU-wise one-at-a-time until we hit 'nr_to_scan' |
356 | * pages freed. | 356 | * pages freed. |
357 | */ | 357 | */ |
358 | static int ashmem_shrink(struct shrinker *s, int nr_to_scan, gfp_t gfp_mask) | 358 | static int ashmem_shrink(struct shrinker *s, struct shrink_control *sc) |
359 | { | 359 | { |
360 | struct ashmem_range *range, *next; | 360 | struct ashmem_range *range, *next; |
361 | 361 | ||
362 | /* We might recurse into filesystem code, so bail out if necessary */ | 362 | /* We might recurse into filesystem code, so bail out if necessary */ |
363 | if (nr_to_scan && !(gfp_mask & __GFP_FS)) | 363 | if (sc->nr_to_scan && !(sc->gfp_mask & __GFP_FS)) |
364 | return -1; | 364 | return -1; |
365 | if (!nr_to_scan) | 365 | if (!sc->nr_to_scan) |
366 | return lru_count; | 366 | return lru_count; |
367 | 367 | ||
368 | mutex_lock(&ashmem_mutex); | 368 | mutex_lock(&ashmem_mutex); |
@@ -375,8 +375,8 @@ static int ashmem_shrink(struct shrinker *s, int nr_to_scan, gfp_t gfp_mask) | |||
375 | range->purged = ASHMEM_WAS_PURGED; | 375 | range->purged = ASHMEM_WAS_PURGED; |
376 | lru_del(range); | 376 | lru_del(range); |
377 | 377 | ||
378 | nr_to_scan -= range_size(range); | 378 | sc->nr_to_scan -= range_size(range); |
379 | if (nr_to_scan <= 0) | 379 | if (sc->nr_to_scan <= 0) |
380 | break; | 380 | break; |
381 | } | 381 | } |
382 | mutex_unlock(&ashmem_mutex); | 382 | mutex_unlock(&ashmem_mutex); |
@@ -670,8 +670,13 @@ static long ashmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
670 | case ASHMEM_PURGE_ALL_CACHES: | 670 | case ASHMEM_PURGE_ALL_CACHES: |
671 | ret = -EPERM; | 671 | ret = -EPERM; |
672 | if (capable(CAP_SYS_ADMIN)) { | 672 | if (capable(CAP_SYS_ADMIN)) { |
673 | ret = ashmem_shrink(&ashmem_shrinker, 0, GFP_KERNEL); | 673 | struct shrink_control sc = { |
674 | ashmem_shrink(&ashmem_shrinker, ret, GFP_KERNEL); | 674 | .gfp_mask = GFP_KERNEL, |
675 | .nr_to_scan = 0, | ||
676 | }; | ||
677 | ret = ashmem_shrink(&ashmem_shrinker, &sc); | ||
678 | sc.nr_to_scan = ret; | ||
679 | ashmem_shrink(&ashmem_shrinker, &sc); | ||
675 | } | 680 | } |
676 | break; | 681 | break; |
677 | } | 682 | } |