|
@@ -319,7 +319,7 @@ out:
|
|
|
* chunks of ashmem regions LRU-wise one-at-a-time until we hit 'nr_to_scan'
|
|
|
* pages freed.
|
|
|
*/
|
|
|
-static int ashmem_shrink(int nr_to_scan, gfp_t gfp_mask)
|
|
|
+static int ashmem_shrink(struct shrinker *s, int nr_to_scan, gfp_t gfp_mask)
|
|
|
{
|
|
|
struct ashmem_range *range, *next;
|
|
|
|
|
@@ -634,8 +634,8 @@ static long ashmem_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|
|
case ASHMEM_PURGE_ALL_CACHES:
|
|
|
ret = -EPERM;
|
|
|
if (capable(CAP_SYS_ADMIN)) {
|
|
|
- ret = ashmem_shrink(0, GFP_KERNEL);
|
|
|
- ashmem_shrink(ret, GFP_KERNEL);
|
|
|
+ ret = ashmem_shrink(&ashmem_shrinker, 0, GFP_KERNEL);
|
|
|
+ ashmem_shrink(&ashmem_shrinker, ret, GFP_KERNEL);
|
|
|
}
|
|
|
break;
|
|
|
}
|