Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
2c4736d9
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 4 年多
通知
15
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2c4736d9
编写于
1月 19, 2018
作者:
T
Tejun Heo
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-4.15-fixes' into for-4.16
上级
c4e0842b
4f58424d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
12 deletion
+15
-12
kernel/cgroup/cgroup-v1.c
kernel/cgroup/cgroup-v1.c
+5
-1
kernel/cgroup/cgroup.c
kernel/cgroup/cgroup.c
+10
-11
未找到文件。
kernel/cgroup/cgroup-v1.c
浏览文件 @
2c4736d9
...
@@ -123,7 +123,11 @@ int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from)
...
@@ -123,7 +123,11 @@ int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from)
*/
*/
do
{
do
{
css_task_iter_start
(
&
from
->
self
,
0
,
&
it
);
css_task_iter_start
(
&
from
->
self
,
0
,
&
it
);
task
=
css_task_iter_next
(
&
it
);
do
{
task
=
css_task_iter_next
(
&
it
);
}
while
(
task
&&
(
task
->
flags
&
PF_EXITING
));
if
(
task
)
if
(
task
)
get_task_struct
(
task
);
get_task_struct
(
task
);
css_task_iter_end
(
&
it
);
css_task_iter_end
(
&
it
);
...
...
kernel/cgroup/cgroup.c
浏览文件 @
2c4736d9
...
@@ -1397,7 +1397,7 @@ static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft,
...
@@ -1397,7 +1397,7 @@ static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft,
cgroup_on_dfl
(
cgrp
)
?
ss
->
name
:
ss
->
legacy_name
,
cgroup_on_dfl
(
cgrp
)
?
ss
->
name
:
ss
->
legacy_name
,
cft
->
name
);
cft
->
name
);
else
else
str
n
cpy
(
buf
,
cft
->
name
,
CGROUP_FILE_NAME_MAX
);
str
l
cpy
(
buf
,
cft
->
name
,
CGROUP_FILE_NAME_MAX
);
return
buf
;
return
buf
;
}
}
...
@@ -1864,9 +1864,9 @@ void init_cgroup_root(struct cgroup_root *root, struct cgroup_sb_opts *opts)
...
@@ -1864,9 +1864,9 @@ void init_cgroup_root(struct cgroup_root *root, struct cgroup_sb_opts *opts)
root
->
flags
=
opts
->
flags
;
root
->
flags
=
opts
->
flags
;
if
(
opts
->
release_agent
)
if
(
opts
->
release_agent
)
str
cpy
(
root
->
release_agent_path
,
opts
->
release_agent
);
str
lcpy
(
root
->
release_agent_path
,
opts
->
release_agent
,
PATH_MAX
);
if
(
opts
->
name
)
if
(
opts
->
name
)
str
cpy
(
root
->
name
,
opts
->
name
);
str
lcpy
(
root
->
name
,
opts
->
name
,
MAX_CGROUP_ROOT_NAMELEN
);
if
(
opts
->
cpuset_clone_children
)
if
(
opts
->
cpuset_clone_children
)
set_bit
(
CGRP_CPUSET_CLONE_CHILDREN
,
&
root
->
cgrp
.
flags
);
set_bit
(
CGRP_CPUSET_CLONE_CHILDREN
,
&
root
->
cgrp
.
flags
);
}
}
...
@@ -4125,26 +4125,24 @@ static void css_task_iter_advance_css_set(struct css_task_iter *it)
...
@@ -4125,26 +4125,24 @@ static void css_task_iter_advance_css_set(struct css_task_iter *it)
static
void
css_task_iter_advance
(
struct
css_task_iter
*
it
)
static
void
css_task_iter_advance
(
struct
css_task_iter
*
it
)
{
{
struct
list_head
*
l
=
it
->
task_pos
;
struct
list_head
*
next
;
lockdep_assert_held
(
&
css_set_lock
);
lockdep_assert_held
(
&
css_set_lock
);
WARN_ON_ONCE
(
!
l
);
repeat:
repeat:
/*
/*
* Advance iterator to find next entry. cset->tasks is consumed
* Advance iterator to find next entry. cset->tasks is consumed
* first and then ->mg_tasks. After ->mg_tasks, we move onto the
* first and then ->mg_tasks. After ->mg_tasks, we move onto the
* next cset.
* next cset.
*/
*/
l
=
l
->
next
;
next
=
it
->
task_pos
->
next
;
if
(
l
==
it
->
tasks_head
)
if
(
next
==
it
->
tasks_head
)
l
=
it
->
mg_tasks_head
->
next
;
next
=
it
->
mg_tasks_head
->
next
;
if
(
l
==
it
->
mg_tasks_head
)
if
(
next
==
it
->
mg_tasks_head
)
css_task_iter_advance_css_set
(
it
);
css_task_iter_advance_css_set
(
it
);
else
else
it
->
task_pos
=
l
;
it
->
task_pos
=
next
;
/* if PROCS, skip over tasks which aren't group leaders */
/* if PROCS, skip over tasks which aren't group leaders */
if
((
it
->
flags
&
CSS_TASK_ITER_PROCS
)
&&
it
->
task_pos
&&
if
((
it
->
flags
&
CSS_TASK_ITER_PROCS
)
&&
it
->
task_pos
&&
...
@@ -4449,6 +4447,7 @@ static struct cftype cgroup_base_files[] = {
...
@@ -4449,6 +4447,7 @@ static struct cftype cgroup_base_files[] = {
},
},
{
{
.
name
=
"cgroup.threads"
,
.
name
=
"cgroup.threads"
,
.
flags
=
CFTYPE_NS_DELEGATABLE
,
.
release
=
cgroup_procs_release
,
.
release
=
cgroup_procs_release
,
.
seq_start
=
cgroup_threads_start
,
.
seq_start
=
cgroup_threads_start
,
.
seq_next
=
cgroup_procs_next
,
.
seq_next
=
cgroup_procs_next
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录