diff options
author | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 09:48:20 +0200 |
---|---|---|
committer | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-22 14:02:16 +0200 |
commit | 2489007e7d740ccbc3e0a202914e243ad5178787 (patch) | |
tree | b8e6380ea7b1da63474ad68a5dba997e01146043 /fs/drop_caches.c | |
parent | 5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff) | |
download | kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.gz kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.bz2 kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.zip |
merge opensource jb u5
Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2
Diffstat (limited to 'fs/drop_caches.c')
-rw-r--r-- | fs/drop_caches.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/drop_caches.c b/fs/drop_caches.c index c00e055b628..cd5575b4176 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -49,6 +49,16 @@ static void drop_slab(void) } while (nr_objects > 10); } +#ifdef CONFIG_DMA_CMA +void perform_drop_caches(unsigned int mode) +{ + if (mode & 1) + iterate_supers(drop_pagecache_sb, NULL); + if (mode & 2) + drop_slab(); +} +#endif + int drop_caches_sysctl_handler(ctl_table *table, int write, void __user *buffer, size_t *length, loff_t *ppos) { @@ -57,11 +67,17 @@ int drop_caches_sysctl_handler(ctl_table *table, int write, ret = proc_dointvec_minmax(table, write, buffer, length, ppos); if (ret) return ret; + +#ifndef CONFIG_DMA_CMA if (write) { if (sysctl_drop_caches & 1) iterate_supers(drop_pagecache_sb, NULL); if (sysctl_drop_caches & 2) drop_slab(); } +#else + if (write) + perform_drop_caches(sysctl_drop_caches); +#endif return 0; } |