.. | .. |
---|
4927 | 4927 | } |
---|
4928 | 4928 | } |
---|
4929 | 4929 | |
---|
4930 | | -static void css_release_work_fn(struct work_struct *work) |
---|
| 4930 | +static void css_release_work_fn(struct swork_event *sev) |
---|
4931 | 4931 | { |
---|
4932 | 4932 | struct cgroup_subsys_state *css = |
---|
4933 | | - container_of(work, struct cgroup_subsys_state, destroy_work); |
---|
| 4933 | + container_of(sev, struct cgroup_subsys_state, destroy_swork); |
---|
4934 | 4934 | struct cgroup_subsys *ss = css->ss; |
---|
4935 | 4935 | struct cgroup *cgrp = css->cgroup; |
---|
4936 | 4936 | |
---|
.. | .. |
---|
4992 | 4992 | struct cgroup_subsys_state *css = |
---|
4993 | 4993 | container_of(ref, struct cgroup_subsys_state, refcnt); |
---|
4994 | 4994 | |
---|
4995 | | - INIT_WORK(&css->destroy_work, css_release_work_fn); |
---|
4996 | | - queue_work(cgroup_destroy_wq, &css->destroy_work); |
---|
| 4995 | + INIT_SWORK(&css->destroy_swork, css_release_work_fn); |
---|
| 4996 | + swork_queue(&css->destroy_swork); |
---|
4997 | 4997 | } |
---|
4998 | 4998 | |
---|
4999 | 4999 | static void init_and_link_css(struct cgroup_subsys_state *css, |
---|
.. | .. |
---|
5751 | 5751 | */ |
---|
5752 | 5752 | cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1); |
---|
5753 | 5753 | BUG_ON(!cgroup_destroy_wq); |
---|
| 5754 | + BUG_ON(swork_get()); |
---|
5754 | 5755 | return 0; |
---|
5755 | 5756 | } |
---|
5756 | 5757 | core_initcall(cgroup_wq_init); |
---|