Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
db90681d
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
db90681d
编写于
9月 29, 2010
作者:
J
J. Bruce Fields
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
nfsd4: refactor connection allocation
Signed-off-by:
N
J. Bruce Fields
<
bfields@redhat.com
>
上级
19cf5c02
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
26 addition
and
6 deletion
+26
-6
fs/nfsd/nfs4state.c
fs/nfsd/nfs4state.c
+26
-6
未找到文件。
fs/nfsd/nfs4state.c
浏览文件 @
db90681d
...
...
@@ -644,25 +644,45 @@ static void nfsd4_conn_lost(struct svc_xpt_user *u)
spin_unlock
(
&
clp
->
cl_lock
);
}
static
__be32
nfsd4_new_conn
(
struct
svc_rqst
*
rqstp
,
struct
nfsd4_session
*
ses
)
static
struct
nfsd4_conn
*
alloc_conn
(
struct
svc_rqst
*
rqstp
)
{
struct
nfs4_client
*
clp
=
ses
->
se_client
;
struct
nfsd4_conn
*
conn
;
conn
=
kmalloc
(
sizeof
(
struct
nfsd4_conn
),
GFP_KERNEL
);
if
(
!
conn
)
return
nfserr_jukebox
;
conn
->
cn_flags
=
NFS4_CDFC4_FORE
;
return
NULL
;
svc_xprt_get
(
rqstp
->
rq_xprt
);
conn
->
cn_xprt
=
rqstp
->
rq_xprt
;
conn
->
cn_session
=
ses
;
conn
->
cn_flags
=
NFS4_CDFC4_FORE
;
INIT_LIST_HEAD
(
&
conn
->
cn_xpt_user
.
list
);
return
conn
;
}
static
void
nfsd4_hash_conn
(
struct
nfsd4_conn
*
conn
,
struct
nfsd4_session
*
ses
)
{
struct
nfs4_client
*
clp
=
ses
->
se_client
;
spin_lock
(
&
clp
->
cl_lock
);
conn
->
cn_session
=
ses
;
list_add
(
&
conn
->
cn_persession
,
&
ses
->
se_conns
);
spin_unlock
(
&
clp
->
cl_lock
);
}
static
void
nfsd4_register_conn
(
struct
nfsd4_conn
*
conn
)
{
conn
->
cn_xpt_user
.
callback
=
nfsd4_conn_lost
;
register_xpt_user
(
rqstp
->
rq_xprt
,
&
conn
->
cn_xpt_user
);
register_xpt_user
(
conn
->
cn_xprt
,
&
conn
->
cn_xpt_user
);
}
static
__be32
nfsd4_new_conn
(
struct
svc_rqst
*
rqstp
,
struct
nfsd4_session
*
ses
)
{
struct
nfsd4_conn
*
conn
;
conn
=
alloc_conn
(
rqstp
);
if
(
!
conn
)
return
nfserr_jukebox
;
nfsd4_hash_conn
(
conn
,
ses
);
nfsd4_register_conn
(
conn
);
return
nfs_ok
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录