aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-04-29 04:00:20 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 11:06:10 -0400
commit85cc59db12724e1248f5e4841e61339cf485d5c7 (patch)
tree960340cafba30181a1e2f60c93cd54a6fdb637ff /mm/memcontrol.c
parentb6ac57d50a375aa2f267e1b2b56c46564a936d00 (diff)
memcgroup: use triggers in force_empty and max_usage files
These two files are essentially event callbacks. They do not care about the contents of the string, but only about the fact of the write itself. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Paul Menage <menage@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r--mm/memcontrol.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index f4079692cbf5..dc3472f9f68c 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -857,27 +857,18 @@ static ssize_t mem_cgroup_write(struct cgroup *cont, struct cftype *cft,
857 mem_cgroup_write_strategy); 857 mem_cgroup_write_strategy);
858} 858}
859 859
860static ssize_t mem_cgroup_max_reset(struct cgroup *cont, struct cftype *cft, 860static int mem_cgroup_max_reset(struct cgroup *cont, unsigned int event)
861 struct file *file, const char __user *userbuf,
862 size_t nbytes, loff_t *ppos)
863{ 861{
864 struct mem_cgroup *mem; 862 struct mem_cgroup *mem;
865 863
866 mem = mem_cgroup_from_cont(cont); 864 mem = mem_cgroup_from_cont(cont);
867 res_counter_reset_max(&mem->res); 865 res_counter_reset_max(&mem->res);
868 return nbytes; 866 return 0;
869} 867}
870 868
871static ssize_t mem_force_empty_write(struct cgroup *cont, 869static int mem_force_empty_write(struct cgroup *cont, unsigned int event)
872 struct cftype *cft, struct file *file,
873 const char __user *userbuf,
874 size_t nbytes, loff_t *ppos)
875{ 870{
876 struct mem_cgroup *mem = mem_cgroup_from_cont(cont); 871 return mem_cgroup_force_empty(mem_cgroup_from_cont(cont));
877 int ret = mem_cgroup_force_empty(mem);
878 if (!ret)
879 ret = nbytes;
880 return ret;
881} 872}
882 873
883static const struct mem_cgroup_stat_desc { 874static const struct mem_cgroup_stat_desc {
@@ -925,7 +916,7 @@ static struct cftype mem_cgroup_files[] = {
925 { 916 {
926 .name = "max_usage_in_bytes", 917 .name = "max_usage_in_bytes",
927 .private = RES_MAX_USAGE, 918 .private = RES_MAX_USAGE,
928 .write = mem_cgroup_max_reset, 919 .trigger = mem_cgroup_max_reset,
929 .read_u64 = mem_cgroup_read, 920 .read_u64 = mem_cgroup_read,
930 }, 921 },
931 { 922 {
@@ -941,7 +932,7 @@ static struct cftype mem_cgroup_files[] = {
941 }, 932 },
942 { 933 {
943 .name = "force_empty", 934 .name = "force_empty",
944 .write = mem_force_empty_write, 935 .trigger = mem_force_empty_write,
945 }, 936 },
946 { 937 {
947 .name = "stat", 938 .name = "stat",