Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
3c041184
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3c041184
编写于
11月 01, 2014
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch the rest of proc_ns_operations to working with &...->ns
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
ff24870f
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
36 addition
and
22 deletion
+36
-22
ipc/namespace.c
ipc/namespace.c
+9
-6
kernel/pid_namespace.c
kernel/pid_namespace.c
+9
-5
kernel/user_namespace.c
kernel/user_namespace.c
+9
-5
kernel/utsname.c
kernel/utsname.c
+9
-6
未找到文件。
ipc/namespace.c
浏览文件 @
3c041184
...
...
@@ -149,6 +149,11 @@ void put_ipc_ns(struct ipc_namespace *ns)
}
}
static
inline
struct
ipc_namespace
*
to_ipc_ns
(
struct
ns_common
*
ns
)
{
return
container_of
(
ns
,
struct
ipc_namespace
,
ns
);
}
static
void
*
ipcns_get
(
struct
task_struct
*
task
)
{
struct
ipc_namespace
*
ns
=
NULL
;
...
...
@@ -160,17 +165,17 @@ static void *ipcns_get(struct task_struct *task)
ns
=
get_ipc_ns
(
nsproxy
->
ipc_ns
);
task_unlock
(
task
);
return
ns
;
return
ns
?
&
ns
->
ns
:
NULL
;
}
static
void
ipcns_put
(
void
*
ns
)
{
return
put_ipc_ns
(
ns
);
return
put_ipc_ns
(
to_ipc_ns
(
ns
)
);
}
static
int
ipcns_install
(
struct
nsproxy
*
nsproxy
,
void
*
new
)
{
struct
ipc_namespace
*
ns
=
new
;
struct
ipc_namespace
*
ns
=
to_ipc_ns
(
new
)
;
if
(
!
ns_capable
(
ns
->
user_ns
,
CAP_SYS_ADMIN
)
||
!
ns_capable
(
current_user_ns
(),
CAP_SYS_ADMIN
))
return
-
EPERM
;
...
...
@@ -184,9 +189,7 @@ static int ipcns_install(struct nsproxy *nsproxy, void *new)
static
unsigned
int
ipcns_inum
(
void
*
vp
)
{
struct
ipc_namespace
*
ns
=
vp
;
return
ns
->
ns
.
inum
;
return
((
struct
ns_common
*
)
vp
)
->
inum
;
}
const
struct
proc_ns_operations
ipcns_operations
=
{
...
...
kernel/pid_namespace.c
浏览文件 @
3c041184
...
...
@@ -313,6 +313,11 @@ int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd)
return
0
;
}
static
inline
struct
pid_namespace
*
to_pid_ns
(
struct
ns_common
*
ns
)
{
return
container_of
(
ns
,
struct
pid_namespace
,
ns
);
}
static
void
*
pidns_get
(
struct
task_struct
*
task
)
{
struct
pid_namespace
*
ns
;
...
...
@@ -323,18 +328,18 @@ static void *pidns_get(struct task_struct *task)
get_pid_ns
(
ns
);
rcu_read_unlock
();
return
ns
;
return
ns
?
&
ns
->
ns
:
NULL
;
}
static
void
pidns_put
(
void
*
ns
)
{
put_pid_ns
(
ns
);
put_pid_ns
(
to_pid_ns
(
ns
)
);
}
static
int
pidns_install
(
struct
nsproxy
*
nsproxy
,
void
*
ns
)
{
struct
pid_namespace
*
active
=
task_active_pid_ns
(
current
);
struct
pid_namespace
*
ancestor
,
*
new
=
ns
;
struct
pid_namespace
*
ancestor
,
*
new
=
to_pid_ns
(
ns
)
;
if
(
!
ns_capable
(
new
->
user_ns
,
CAP_SYS_ADMIN
)
||
!
ns_capable
(
current_user_ns
(),
CAP_SYS_ADMIN
))
...
...
@@ -364,8 +369,7 @@ static int pidns_install(struct nsproxy *nsproxy, void *ns)
static
unsigned
int
pidns_inum
(
void
*
ns
)
{
struct
pid_namespace
*
pid_ns
=
ns
;
return
pid_ns
->
ns
.
inum
;
return
((
struct
ns_common
*
)
ns
)
->
inum
;
}
const
struct
proc_ns_operations
pidns_operations
=
{
...
...
kernel/user_namespace.c
浏览文件 @
3c041184
...
...
@@ -841,6 +841,11 @@ static bool new_idmap_permitted(const struct file *file,
return
false
;
}
static
inline
struct
user_namespace
*
to_user_ns
(
struct
ns_common
*
ns
)
{
return
container_of
(
ns
,
struct
user_namespace
,
ns
);
}
static
void
*
userns_get
(
struct
task_struct
*
task
)
{
struct
user_namespace
*
user_ns
;
...
...
@@ -849,17 +854,17 @@ static void *userns_get(struct task_struct *task)
user_ns
=
get_user_ns
(
__task_cred
(
task
)
->
user_ns
);
rcu_read_unlock
();
return
user_ns
;
return
user_ns
?
&
user_ns
->
ns
:
NULL
;
}
static
void
userns_put
(
void
*
ns
)
{
put_user_ns
(
ns
);
put_user_ns
(
to_user_ns
(
ns
)
);
}
static
int
userns_install
(
struct
nsproxy
*
nsproxy
,
void
*
ns
)
{
struct
user_namespace
*
user_ns
=
ns
;
struct
user_namespace
*
user_ns
=
to_user_ns
(
ns
)
;
struct
cred
*
cred
;
/* Don't allow gaining capabilities by reentering
...
...
@@ -890,8 +895,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns)
static
unsigned
int
userns_inum
(
void
*
ns
)
{
struct
user_namespace
*
user_ns
=
ns
;
return
user_ns
->
ns
.
inum
;
return
((
struct
ns_common
*
)
ns
)
->
inum
;
}
const
struct
proc_ns_operations
userns_operations
=
{
...
...
kernel/utsname.c
浏览文件 @
3c041184
...
...
@@ -88,6 +88,11 @@ void free_uts_ns(struct kref *kref)
kfree
(
ns
);
}
static
inline
struct
uts_namespace
*
to_uts_ns
(
struct
ns_common
*
ns
)
{
return
container_of
(
ns
,
struct
uts_namespace
,
ns
);
}
static
void
*
utsns_get
(
struct
task_struct
*
task
)
{
struct
uts_namespace
*
ns
=
NULL
;
...
...
@@ -101,17 +106,17 @@ static void *utsns_get(struct task_struct *task)
}
task_unlock
(
task
);
return
ns
;
return
ns
?
&
ns
->
ns
:
NULL
;
}
static
void
utsns_put
(
void
*
ns
)
{
put_uts_ns
(
ns
);
put_uts_ns
(
to_uts_ns
(
ns
)
);
}
static
int
utsns_install
(
struct
nsproxy
*
nsproxy
,
void
*
new
)
{
struct
uts_namespace
*
ns
=
new
;
struct
uts_namespace
*
ns
=
to_uts_ns
(
new
)
;
if
(
!
ns_capable
(
ns
->
user_ns
,
CAP_SYS_ADMIN
)
||
!
ns_capable
(
current_user_ns
(),
CAP_SYS_ADMIN
))
...
...
@@ -125,9 +130,7 @@ static int utsns_install(struct nsproxy *nsproxy, void *new)
static
unsigned
int
utsns_inum
(
void
*
vp
)
{
struct
uts_namespace
*
ns
=
vp
;
return
ns
->
ns
.
inum
;
return
((
struct
ns_common
*
)
vp
)
->
inum
;
}
const
struct
proc_ns_operations
utsns_operations
=
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录