Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
5d8d9a4d
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5d8d9a4d
编写于
7月 31, 2010
作者:
T
Trond Myklebust
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NFS: Ensure the AUTH_UNIX credcache is allocated dynamically
Signed-off-by:
N
Trond Myklebust
<
Trond.Myklebust@netapp.com
>
上级
d05dd4e9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
40 addition
and
28 deletion
+40
-28
include/linux/sunrpc/auth.h
include/linux/sunrpc/auth.h
+4
-3
net/sunrpc/auth.c
net/sunrpc/auth.c
+16
-3
net/sunrpc/auth_generic.c
net/sunrpc/auth_generic.c
+3
-9
net/sunrpc/auth_unix.c
net/sunrpc/auth_unix.c
+7
-8
net/sunrpc/sunrpc_syms.c
net/sunrpc/sunrpc_syms.c
+10
-5
未找到文件。
include/linux/sunrpc/auth.h
浏览文件 @
5d8d9a4d
...
...
@@ -125,11 +125,12 @@ struct rpc_credops {
extern
const
struct
rpc_authops
authunix_ops
;
extern
const
struct
rpc_authops
authnull_ops
;
void
__init
rpc_init_authunix
(
void
);
void
__init
rpc_init_generic_auth
(
void
);
void
__init
rpcauth_init_module
(
void
);
int
__init
rpc_init_authunix
(
void
);
int
__init
rpc_init_generic_auth
(
void
);
int
__init
rpcauth_init_module
(
void
);
void
__exit
rpcauth_remove_module
(
void
);
void
__exit
rpc_destroy_generic_auth
(
void
);
void
rpc_destroy_authunix
(
void
);
struct
rpc_cred
*
rpc_lookup_cred
(
void
);
struct
rpc_cred
*
rpc_lookup_machine_cred
(
void
);
...
...
net/sunrpc/auth.c
浏览文件 @
5d8d9a4d
...
...
@@ -587,14 +587,27 @@ static struct shrinker rpc_cred_shrinker = {
.
seeks
=
DEFAULT_SEEKS
,
};
void
__init
rpcauth_init_module
(
void
)
int
__init
rpcauth_init_module
(
void
)
{
rpc_init_authunix
();
rpc_init_generic_auth
();
int
err
;
err
=
rpc_init_authunix
();
if
(
err
<
0
)
goto
out1
;
err
=
rpc_init_generic_auth
();
if
(
err
<
0
)
goto
out2
;
register_shrinker
(
&
rpc_cred_shrinker
);
return
0
;
out2:
rpc_destroy_authunix
();
out1:
return
err
;
}
void
__exit
rpcauth_remove_module
(
void
)
{
rpc_destroy_authunix
();
rpc_destroy_generic_auth
();
unregister_shrinker
(
&
rpc_cred_shrinker
);
}
net/sunrpc/auth_generic.c
浏览文件 @
5d8d9a4d
...
...
@@ -27,7 +27,6 @@ struct generic_cred {
};
static
struct
rpc_auth
generic_auth
;
static
struct
rpc_cred_cache
generic_cred_cache
;
static
const
struct
rpc_credops
generic_credops
;
/*
...
...
@@ -159,20 +158,16 @@ generic_match(struct auth_cred *acred, struct rpc_cred *cred, int flags)
return
0
;
}
void
__init
rpc_init_generic_auth
(
void
)
int
__init
rpc_init_generic_auth
(
void
)
{
spin_lock_init
(
&
generic_cred_cache
.
lock
);
return
rpcauth_init_credcache
(
&
generic_auth
);
}
void
__exit
rpc_destroy_generic_auth
(
void
)
{
rpcauth_
clear_credcache
(
&
generic_cred_cache
);
rpcauth_
destroy_credcache
(
&
generic_auth
);
}
static
struct
rpc_cred_cache
generic_cred_cache
=
{
{{
NULL
,
},},
};
static
const
struct
rpc_authops
generic_auth_ops
=
{
.
owner
=
THIS_MODULE
,
.
au_name
=
"Generic"
,
...
...
@@ -183,7 +178,6 @@ static const struct rpc_authops generic_auth_ops = {
static
struct
rpc_auth
generic_auth
=
{
.
au_ops
=
&
generic_auth_ops
,
.
au_count
=
ATOMIC_INIT
(
0
),
.
au_credcache
=
&
generic_cred_cache
,
};
static
const
struct
rpc_credops
generic_credops
=
{
...
...
net/sunrpc/auth_unix.c
浏览文件 @
5d8d9a4d
...
...
@@ -29,7 +29,6 @@ struct unx_cred {
#endif
static
struct
rpc_auth
unix_auth
;
static
struct
rpc_cred_cache
unix_cred_cache
;
static
const
struct
rpc_credops
unix_credops
;
static
struct
rpc_auth
*
...
...
@@ -203,9 +202,14 @@ unx_validate(struct rpc_task *task, __be32 *p)
return
p
;
}
void
__init
rpc_init_authunix
(
void
)
int
__init
rpc_init_authunix
(
void
)
{
spin_lock_init
(
&
unix_cred_cache
.
lock
);
return
rpcauth_init_credcache
(
&
unix_auth
);
}
void
rpc_destroy_authunix
(
void
)
{
rpcauth_destroy_credcache
(
&
unix_auth
);
}
const
struct
rpc_authops
authunix_ops
=
{
...
...
@@ -218,10 +222,6 @@ const struct rpc_authops authunix_ops = {
.
crcreate
=
unx_create_cred
,
};
static
struct
rpc_cred_cache
unix_cred_cache
=
{
};
static
struct
rpc_auth
unix_auth
=
{
.
au_cslack
=
UNX_WRITESLACK
,
...
...
@@ -229,7 +229,6 @@ struct rpc_auth unix_auth = {
.
au_ops
=
&
authunix_ops
,
.
au_flavor
=
RPC_AUTH_UNIX
,
.
au_count
=
ATOMIC_INIT
(
0
),
.
au_credcache
=
&
unix_cred_cache
,
};
static
...
...
net/sunrpc/sunrpc_syms.c
浏览文件 @
5d8d9a4d
...
...
@@ -33,10 +33,11 @@ init_sunrpc(void)
if
(
err
)
goto
out
;
err
=
rpc_init_mempool
();
if
(
err
)
{
unregister_rpc_pipefs
();
goto
out
;
}
if
(
err
)
goto
out2
;
err
=
rpcauth_init_module
();
if
(
err
)
goto
out3
;
#ifdef RPC_DEBUG
rpc_register_sysctl
();
#endif
...
...
@@ -47,7 +48,11 @@ init_sunrpc(void)
cache_register
(
&
unix_gid_cache
);
svc_init_xprt_sock
();
/* svc sock transport */
init_socket_xprt
();
/* clnt sock transport */
rpcauth_init_module
();
return
0
;
out3:
rpc_destroy_mempool
();
out2:
unregister_rpc_pipefs
();
out:
return
err
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录