Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
71ac6da9
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
71ac6da9
编写于
6月 16, 2010
作者:
T
Trond Myklebust
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
NFSv4.1: Merge the nfs41_proc_async_sequence() and nfs4_proc_sequence()
Signed-off-by:
N
Trond Myklebust
<
Trond.Myklebust@netapp.com
>
上级
aa5190d0
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
44 addition
and
24 deletion
+44
-24
fs/nfs/nfs4proc.c
fs/nfs/nfs4proc.c
+44
-24
未找到文件。
fs/nfs/nfs4proc.c
浏览文件 @
71ac6da9
...
...
@@ -5048,24 +5048,6 @@ int nfs4_init_session(struct nfs_server *server)
/*
* Renew the cl_session lease.
*/
static
int
nfs4_proc_sequence
(
struct
nfs_client
*
clp
,
struct
rpc_cred
*
cred
)
{
struct
nfs4_sequence_args
args
;
struct
nfs4_sequence_res
res
;
struct
rpc_message
msg
=
{
.
rpc_proc
=
&
nfs4_procedures
[
NFSPROC4_CLNT_SEQUENCE
],
.
rpc_argp
=
&
args
,
.
rpc_resp
=
&
res
,
.
rpc_cred
=
cred
,
};
args
.
sa_cache_this
=
0
;
return
nfs4_call_sync_sequence
(
clp
,
clp
->
cl_rpcclient
,
&
msg
,
&
args
,
&
res
,
args
.
sa_cache_this
,
1
);
}
struct
nfs4_sequence_data
{
struct
nfs_client
*
clp
;
struct
nfs4_sequence_args
args
;
...
...
@@ -5139,29 +5121,67 @@ static const struct rpc_call_ops nfs41_sequence_ops = {
.
rpc_release
=
nfs41_sequence_release
,
};
static
int
nfs41_proc_async_sequence
(
struct
nfs_client
*
clp
,
struct
rpc_cred
*
cred
)
static
struct
rpc_task
*
_nfs41_proc_sequence
(
struct
nfs_client
*
clp
,
struct
rpc_cred
*
cred
)
{
struct
nfs4_sequence_data
*
calldata
;
struct
rpc_message
msg
=
{
.
rpc_proc
=
&
nfs4_procedures
[
NFSPROC4_CLNT_SEQUENCE
],
.
rpc_cred
=
cred
,
};
struct
rpc_task_setup
task_setup_data
=
{
.
rpc_client
=
clp
->
cl_rpcclient
,
.
rpc_message
=
&
msg
,
.
callback_ops
=
&
nfs41_sequence_ops
,
.
flags
=
RPC_TASK_ASYNC
|
RPC_TASK_SOFT
,
};
if
(
!
atomic_inc_not_zero
(
&
clp
->
cl_count
))
return
-
EIO
;
return
ERR_PTR
(
-
EIO
)
;
calldata
=
kmalloc
(
sizeof
(
*
calldata
),
GFP_NOFS
);
if
(
calldata
==
NULL
)
{
nfs_put_client
(
clp
);
return
-
ENOMEM
;
return
ERR_PTR
(
-
ENOMEM
)
;
}
calldata
->
res
.
sr_slotid
=
NFS4_MAX_SLOT_TABLE
;
msg
.
rpc_argp
=
&
calldata
->
args
;
msg
.
rpc_resp
=
&
calldata
->
res
;
calldata
->
clp
=
clp
;
task_setup_data
.
callback_data
=
calldata
;
return
rpc_call_async
(
clp
->
cl_rpcclient
,
&
msg
,
RPC_TASK_SOFT
,
&
nfs41_sequence_ops
,
calldata
);
return
rpc_run_task
(
&
task_setup_data
);
}
static
int
nfs41_proc_async_sequence
(
struct
nfs_client
*
clp
,
struct
rpc_cred
*
cred
)
{
struct
rpc_task
*
task
;
int
ret
=
0
;
task
=
_nfs41_proc_sequence
(
clp
,
cred
);
if
(
IS_ERR
(
task
))
ret
=
PTR_ERR
(
task
);
else
rpc_put_task
(
task
);
dprintk
(
"<-- %s status=%d
\n
"
,
__func__
,
ret
);
return
ret
;
}
static
int
nfs4_proc_sequence
(
struct
nfs_client
*
clp
,
struct
rpc_cred
*
cred
)
{
struct
rpc_task
*
task
;
int
ret
;
task
=
_nfs41_proc_sequence
(
clp
,
cred
);
if
(
IS_ERR
(
task
))
{
ret
=
PTR_ERR
(
task
);
goto
out
;
}
ret
=
rpc_wait_for_completion_task
(
task
);
if
(
!
ret
)
ret
=
task
->
tk_status
;
rpc_put_task
(
task
);
out:
dprintk
(
"<-- %s status=%d
\n
"
,
__func__
,
ret
);
return
ret
;
}
struct
nfs4_reclaim_complete_data
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录