diff options
Diffstat (limited to 'kernel/cgroup/cgroup.c')
| -rw-r--r-- | kernel/cgroup/cgroup.c | 16 | 
1 files changed, 14 insertions, 2 deletions
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 217cec4e22c6..426a0026225c 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -1810,11 +1810,13 @@ int cgroup_show_path(struct seq_file *sf, struct kernfs_node *kf_node,  enum cgroup2_param {  	Opt_nsdelegate, +	Opt_memory_localevents,  	nr__cgroup2_params  };  static const struct fs_parameter_spec cgroup2_param_specs[] = { -	fsparam_flag  ("nsdelegate",		Opt_nsdelegate), +	fsparam_flag("nsdelegate",		Opt_nsdelegate), +	fsparam_flag("memory_localevents",	Opt_memory_localevents),  	{}  }; @@ -1837,6 +1839,9 @@ static int cgroup2_parse_param(struct fs_context *fc, struct fs_parameter *param  	case Opt_nsdelegate:  		ctx->flags |= CGRP_ROOT_NS_DELEGATE;  		return 0; +	case Opt_memory_localevents: +		ctx->flags |= CGRP_ROOT_MEMORY_LOCAL_EVENTS; +		return 0;  	}  	return -EINVAL;  } @@ -1848,6 +1853,11 @@ static void apply_cgroup_root_flags(unsigned int root_flags)  			cgrp_dfl_root.flags |= CGRP_ROOT_NS_DELEGATE;  		else  			cgrp_dfl_root.flags &= ~CGRP_ROOT_NS_DELEGATE; + +		if (root_flags & CGRP_ROOT_MEMORY_LOCAL_EVENTS) +			cgrp_dfl_root.flags |= CGRP_ROOT_MEMORY_LOCAL_EVENTS; +		else +			cgrp_dfl_root.flags &= ~CGRP_ROOT_MEMORY_LOCAL_EVENTS;  	}  } @@ -1855,6 +1865,8 @@ static int cgroup_show_options(struct seq_file *seq, struct kernfs_root *kf_root  {  	if (cgrp_dfl_root.flags & CGRP_ROOT_NS_DELEGATE)  		seq_puts(seq, ",nsdelegate"); +	if (cgrp_dfl_root.flags & CGRP_ROOT_MEMORY_LOCAL_EVENTS) +		seq_puts(seq, ",memory_localevents");  	return 0;  } @@ -6325,7 +6337,7 @@ static struct kobj_attribute cgroup_delegate_attr = __ATTR_RO(delegate);  static ssize_t features_show(struct kobject *kobj, struct kobj_attribute *attr,  			     char *buf)  { -	return snprintf(buf, PAGE_SIZE, "nsdelegate\n"); +	return snprintf(buf, PAGE_SIZE, "nsdelegate\nmemory_localevents\n");  }  static struct kobj_attribute cgroup_features_attr = __ATTR_RO(features);  | 

