Put the drop caches operation in a new function and export it, then wen can reuse it later. Signed-off-by: Liang Li <liang.z.li@xxxxxxxxx> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Cc: Cornelia Huck <cornelia.huck@xxxxxxxxxx> Cc: Amit Shah <amit.shah@xxxxxxxxxx> Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> --- fs/drop_caches.c | 22 ++++++++++++++-------- include/linux/mm.h | 1 + 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/fs/drop_caches.c b/fs/drop_caches.c index d72d52b..977dc71 100644 --- a/fs/drop_caches.c +++ b/fs/drop_caches.c @@ -50,14 +50,7 @@ int drop_caches_sysctl_handler(struct ctl_table *table, int write, if (write) { static int stfu; - if (sysctl_drop_caches & 1) { - iterate_supers(drop_pagecache_sb, NULL); - count_vm_event(DROP_PAGECACHE); - } - if (sysctl_drop_caches & 2) { - drop_slab(); - count_vm_event(DROP_SLAB); - } + drop_caches(sysctl_drop_caches); if (!stfu) { pr_info("%s (%d): drop_caches: %d\n", current->comm, task_pid_nr(current), @@ -67,3 +60,16 @@ int drop_caches_sysctl_handler(struct ctl_table *table, int write, } return 0; } + +void drop_caches(int drop_ctl) +{ + if (drop_ctl & 1) { + iterate_supers(drop_pagecache_sb, NULL); + count_vm_event(DROP_PAGECACHE); + } + if (drop_ctl & 2) { + drop_slab(); + count_vm_event(DROP_SLAB); + } +} +EXPORT_SYMBOL_GPL(drop_caches); diff --git a/include/linux/mm.h b/include/linux/mm.h index 5df5feb..e22e315 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2263,6 +2263,7 @@ static inline int in_gate_area(struct mm_struct *mm, unsigned long addr) extern int sysctl_drop_caches; int drop_caches_sysctl_handler(struct ctl_table *, int, void __user *, size_t *, loff_t *); +void drop_caches(int drop_ctl); #endif void drop_slab(void); -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html