@ -4887,14 +4887,15 @@ static int mem_cgroup_force_empty(struct mem_cgroup *memcg)
return 0 ;
}
static int mem_cgroup_force_empty_write ( struct cgroup_subsys_state * css ,
unsigned int event )
static ssize_t mem_cgroup_force_empty_write ( struct kernfs_open_file * of ,
char * buf , size_t nbytes ,
loff_t off )
{
struct mem_cgroup * memcg = mem_cgroup_from_css ( css ) ;
struct mem_cgroup * memcg = mem_cgroup_from_css ( of_ css( of ) ) ;
if ( mem_cgroup_is_root ( memcg ) )
return - EINVAL ;
return mem_cgroup_force_empty ( memcg ) ;
return mem_cgroup_force_empty ( memcg ) ? : nbytes ;
}
static u64 mem_cgroup_hierarchy_read ( struct cgroup_subsys_state * css ,
@ -5220,14 +5221,15 @@ out:
* memsw_limit = min_memsw_limit ;
}
static int mem_cgroup_reset ( struct cgroup_subsys_state * css , unsigned int event )
static ssize_t mem_cgroup_reset ( struct kernfs_open_file * of , char * buf ,
size_t nbytes , loff_t off )
{
struct mem_cgroup * memcg = mem_cgroup_from_css ( css ) ;
struct mem_cgroup * memcg = mem_cgroup_from_css ( of_ css( of ) ) ;
int name ;
enum res_type type ;
type = MEMFILE_TYPE ( event ) ;
name = MEMFILE_ATTR ( event ) ;
type = MEMFILE_TYPE ( of_cft ( of ) - > private ) ;
name = MEMFILE_ATTR ( of_cft ( of ) - > private ) ;
switch ( name ) {
case RES_MAX_USAGE :
@ -5252,7 +5254,7 @@ static int mem_cgroup_reset(struct cgroup_subsys_state *css, unsigned int event)
break ;
}
return 0 ;
return nbytes ;
}
static u64 mem_cgroup_move_charge_read ( struct cgroup_subsys_state * css ,
@ -6105,7 +6107,7 @@ static struct cftype mem_cgroup_files[] = {
{
. name = " max_usage_in_bytes " ,
. private = MEMFILE_PRIVATE ( _MEM , RES_MAX_USAGE ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
{
@ -6123,7 +6125,7 @@ static struct cftype mem_cgroup_files[] = {
{
. name = " failcnt " ,
. private = MEMFILE_PRIVATE ( _MEM , RES_FAILCNT ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
{
@ -6132,7 +6134,7 @@ static struct cftype mem_cgroup_files[] = {
} ,
{
. name = " force_empty " ,
. trigger = mem_cgroup_force_empty_write ,
. write = mem_cgroup_force_empty_write ,
} ,
{
. name = " use_hierarchy " ,
@ -6186,13 +6188,13 @@ static struct cftype mem_cgroup_files[] = {
{
. name = " kmem.failcnt " ,
. private = MEMFILE_PRIVATE ( _KMEM , RES_FAILCNT ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
{
. name = " kmem.max_usage_in_bytes " ,
. private = MEMFILE_PRIVATE ( _KMEM , RES_MAX_USAGE ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
# ifdef CONFIG_SLABINFO
@ -6215,7 +6217,7 @@ static struct cftype memsw_cgroup_files[] = {
{
. name = " memsw.max_usage_in_bytes " ,
. private = MEMFILE_PRIVATE ( _MEMSWAP , RES_MAX_USAGE ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
{
@ -6227,7 +6229,7 @@ static struct cftype memsw_cgroup_files[] = {
{
. name = " memsw.failcnt " ,
. private = MEMFILE_PRIVATE ( _MEMSWAP , RES_FAILCNT ) ,
. trigger = mem_cgroup_reset ,
. write = mem_cgroup_reset ,
. read_u64 = mem_cgroup_read_u64 ,
} ,
{ } , /* terminate */