Tejun Heo
334c3679ec
cgroup: reimplement rebind_subsystems() using cgroup_apply_control() and friends
...
rebind_subsystem() open codes quite a bit of css and interface file
manipulations. It tries to be fail-safe but doesn't quite achieve it.
It can be greatly simplified by using the new css management helpers.
This patch reimplements rebind_subsytsems() using
cgroup_apply_control() and friends.
* The half-baked rollback on file creation failure is dropped. It is
an extremely cold path, failure isn't critical, and, aside from
kernel bugs, the only reason it can fail is memory allocation
failure which pretty much doesn't happen for small allocations.
* As cgroup_apply_control_disable() is now used to clean up root
cgroup on rebind, make sure that it doesn't end up killing root
csses.
* All callers of rebind_subsystems() are updated to use
cgroup_lock_and_drain_offline() as the apply_control functions
require drained subtree.
* This leaves cgroup_refresh_subtree_ss_mask() without any user.
Removed.
* css_populate_dir() and css_clear_dir() no longer needs
@cgrp_override parameter. Dropped.
* While at it, add WARN_ON() to rebind_subsystem() calls which are
expected to always succeed just in case.
While the rules visible to userland aren't changed, this
reimplementation not only simplifies rebind_subsystems() but also
allows it to disable and enable csses recursively. This can be used
to implement more flexible rebinding.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Zefan Li <lizefan@huawei.com>
2016-03-03 09:58:01 -05:00
..
bpf
net: bpf: reject invalid shifts
2016-01-12 17:06:53 -05:00
configs
debug
module: use a structure to encapsulate layout.
2015-12-04 22:46:25 +01:00
events
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
gcov
gcov: use within_module() helper.
2015-12-04 22:46:25 +01:00
irq
PCI changes for the v4.5 merge window:
2016-01-21 11:52:16 -08:00
livepatch
livepatch: Cleanup module page permission changes
2015-12-04 22:51:07 +01:00
locking
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-01-11 14:18:38 -08:00
power
PM / sleep: Add support for read-only sysfs attributes
2016-01-04 22:28:59 +01:00
printk
kernel: printk: specify alignment for struct printk_log
2016-01-20 17:09:18 -08:00
rcu
Merge branches 'doc.2015.12.05a', 'exp.2015.12.07a', 'fixes.2015.12.07a', 'list.2015.12.04b' and 'torture.2015.12.05a' into HEAD
2015-12-07 17:02:54 -08:00
sched
cgroup: convert cgroup_subsys flag fields to bool bitfields
2016-02-23 10:00:50 -05:00
time
Merge branch 'pm-cpuidle'
2016-01-21 00:43:21 +01:00
trace
Not much new with tracing for this release. Mostly just clean ups and
2016-01-12 20:04:15 -08:00
.gitignore
certs: add .gitignore to stop git nagging about x509_certificate_list
2015-10-21 15:18:35 +01:00
acct.c
async.c
async: export current_is_async()
2015-11-19 17:51:48 +01:00
audit.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2016-01-17 19:13:15 -08:00
audit.h
security: Make inode argument of inode_getsecid non-const
2015-12-24 11:09:39 -05:00
audit_fsnotify.c
audit_tree.c
audit: audit_tree_match can be boolean
2015-11-04 08:23:51 -05:00
audit_watch.c
auditfilter.c
audit: fix comment block whitespace
2015-11-04 08:23:51 -05:00
auditsc.c
security: Make inode argument of inode_getsecid non-const
2015-12-24 11:09:39 -05:00
backtracetest.c
bounds.c
capability.c
cgroup.c
cgroup: reimplement rebind_subsystems() using cgroup_apply_control() and friends
2016-03-03 09:58:01 -05:00
cgroup_freezer.c
cgroup: kill cgrp_ss_priv[CGROUP_CANFORK_COUNT] and friends
2015-12-03 10:24:08 -05:00
cgroup_pids.c
cgroup_pids: fix a typo.
2015-12-14 14:54:37 -05:00
compat.c
configs.c
context_tracking.c
context_tracking: Switch to new static_branch API
2015-11-24 09:56:43 +01:00
cpu.c
kernel/cpu.c: make set_cpu_* static inlines
2016-01-20 17:09:18 -08:00
cpu_pm.c
cpuset.c
cgroup: convert cgroup_subsys flag fields to bool bitfields
2016-02-23 10:00:50 -05:00
crash_dump.c
cred.c
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
delayacct.c
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
dma.c
elfcore.c
exec_domain.c
exit.c
exit: remove unneeded declaration of exit_mm()
2016-01-20 17:09:18 -08:00
extable.c
fork.c
mm: rework virtual memory accounting
2016-01-14 16:00:49 -08:00
freezer.c
futex.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
futex_compat.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
groups.c
hung_task.c
irq_work.c
treewide: Remove old email address
2015-11-23 09:44:58 +01:00
jump_label.c
treewide: Remove old email address
2015-11-23 09:44:58 +01:00
kallsyms.c
kcmp.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kexec.c
kexec: set KEXEC_TYPE_CRASH before sanity_check_segment_list()
2016-01-20 17:09:18 -08:00
kexec_core.c
kernel/kexec_core.c: use list_for_each_entry_safe in kimage_free_page_list
2016-01-20 17:09:18 -08:00
kexec_file.c
kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE
2016-01-20 17:09:18 -08:00
kexec_internal.h
kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE
2016-01-20 17:09:18 -08:00
kmod.c
kmod: don't run async usermode helper as a child of kworker thread
2015-10-23 17:55:10 +09:00
kprobes.c
ksysfs.c
rcu: Remove TINY_RCU bloat from pointless boot parameters
2015-12-07 16:59:37 -08:00
kthread.c
latencytop.c
Makefile
kernel/Makefile: remove the useless CFLAGS_REMOVE_cgroup-debug.o
2016-01-31 05:11:21 -05:00
membarrier.c
memremap.c
mm, x86: get_user_pages() for dax mappings
2016-01-15 17:56:32 -08:00
module-internal.h
module.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching
2016-01-14 16:38:02 -08:00
module_signing.c
KEYS: Merge the type-specific data with the payload data
2015-10-21 15:18:36 +01:00
notifier.c
nsproxy.c
padata.c
panic.c
printk: do cond_resched() between lines while outputting to consoles
2016-01-16 11:17:25 -08:00
params.c
Nothing exciting, minor tweaks and cleanups.
2015-11-09 15:53:39 -08:00
pid.c
kmemcg: account certain kmem allocations to memcg
2016-01-14 16:00:49 -08:00
pid_namespace.c
profile.c
ptrace.c
ptrace: use fsuid, fsgid, effective creds for fs access checks
2016-01-20 17:09:18 -08:00
range.c
reboot.c
relay.c
resource.c
restrict /dev/mem to idle io memory ranges
2016-01-09 06:30:49 -08:00
seccomp.c
seccomp, ptrace: add support for dumping seccomp filters
2015-10-27 19:55:13 -07:00
signal.c
kernel/signal.c: unexport sigsuspend()
2015-11-20 16:17:32 -08:00
smp.c
mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
2015-11-06 17:50:42 -08:00
smpboot.c
stop_machine: Kill smp_hotplug_thread->pre_unpark, introduce stop_machine_unpark()
2015-10-20 10:23:55 +02:00
smpboot.h
softirq.c
stacktrace.c
stop_machine.c
kernel/stop_machine.c: remove CONFIG_SMP dependencies
2016-01-16 11:17:24 -08:00
sys.c
prctl: take mmap sem for writing to protect against others
2016-01-20 17:09:18 -08:00
sys_ni.c
vfs: add copy_file_range syscall and vfs helper
2015-12-01 14:00:53 -05:00
sysctl.c
sysctl: enable strict writes
2016-01-20 17:09:18 -08:00
sysctl_binary.c
task_work.c
taskstats.c
test_kprobes.c
torture.c
torture: Consolidate cond_resched_rcu_qs() into stutter_wait()
2015-10-06 11:25:01 -07:00
tracepoint.c
tracepoint: Give priority to probes of tracepoints
2015-10-25 21:33:54 -04:00
tsacct.c
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
kernel/*: switch to memdup_user_nul()
2016-01-04 10:27:55 -05:00
utsname.c
utsname_sysctl.c
watchdog.c
Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2016-01-11 18:53:13 -08:00
workqueue.c
workqueue: simplify the apply_workqueue_attrs_locked()
2016-01-07 11:04:34 -05:00
workqueue_internal.h