Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
69064a27
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
69064a27
编写于
9月 09, 2011
作者:
J
J. Bruce Fields
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
nfsd4: use deleg changes to cleanup preprocess_stateid_op
Signed-off-by:
N
J. Bruce Fields
<
bfields@redhat.com
>
上级
97b7e3b6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
14 deletion
+10
-14
fs/nfsd/nfs4state.c
fs/nfsd/nfs4state.c
+10
-14
未找到文件。
fs/nfsd/nfs4state.c
浏览文件 @
69064a27
...
...
@@ -3290,6 +3290,7 @@ __be32
nfs4_preprocess_stateid_op
(
struct
nfsd4_compound_state
*
cstate
,
stateid_t
*
stateid
,
int
flags
,
struct
file
**
filpp
)
{
struct
nfs4_stid
*
s
;
struct
nfs4_ol_stateid
*
stp
=
NULL
;
struct
nfs4_delegation
*
dp
=
NULL
;
struct
svc_fh
*
current_fh
=
&
cstate
->
current_fh
;
...
...
@@ -3314,13 +3315,14 @@ nfs4_preprocess_stateid_op(struct nfsd4_compound_state *cstate,
* but that we can't find, is expired:
*/
status
=
nfserr_expired
;
if
(
is_delegation_stateid
(
stateid
))
{
dp
=
find_deleg_stateid
(
stateid
);
if
(
!
dp
)
goto
out
;
status
=
check_stateid_generation
(
stateid
,
&
dp
->
dl_stid
.
sc_stateid
,
nfsd4_has_session
(
cstate
));
if
(
status
)
goto
out
;
s
=
find_stateid
(
stateid
);
if
(
!
s
)
goto
out
;
status
=
check_stateid_generation
(
stateid
,
&
s
->
sc_stateid
,
nfsd4_has_session
(
cstate
));
if
(
status
)
goto
out
;
if
(
s
->
sc_type
==
NFS4_DELEG_STID
)
{
dp
=
delegstateid
(
s
);
status
=
nfs4_check_delegmode
(
dp
,
flags
);
if
(
status
)
goto
out
;
...
...
@@ -3330,19 +3332,13 @@ nfs4_preprocess_stateid_op(struct nfsd4_compound_state *cstate,
BUG_ON
(
!*
filpp
);
}
}
else
{
/* open or lock stateid */
stp
=
find_ol_stateid
(
stateid
);
if
(
!
stp
)
goto
out
;
stp
=
openlockstateid
(
s
);
status
=
nfserr_bad_stateid
;
if
(
nfs4_check_fh
(
current_fh
,
stp
))
goto
out
;
if
(
stp
->
st_stateowner
->
so_is_open_owner
&&
!
openowner
(
stp
->
st_stateowner
)
->
oo_confirmed
)
goto
out
;
status
=
check_stateid_generation
(
stateid
,
&
stp
->
st_stid
.
sc_stateid
,
nfsd4_has_session
(
cstate
));
if
(
status
)
goto
out
;
status
=
nfs4_check_openmode
(
stp
,
flags
);
if
(
status
)
goto
out
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录