Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
a9004abc
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
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看板
提交
a9004abc
编写于
8月 23, 2011
作者:
J
J. Bruce Fields
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
nfsd4: cleanup and consolidate seqid_mutating_err
Signed-off-by:
N
J. Bruce Fields
<
bfields@redhat.com
>
上级
28dde241
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
17 addition
and
37 deletion
+17
-37
fs/nfs/nfs4_fs.h
fs/nfs/nfs4_fs.h
+0
-24
fs/nfsd/nfs4xdr.c
fs/nfsd/nfs4xdr.c
+1
-13
include/linux/nfs4.h
include/linux/nfs4.h
+16
-0
未找到文件。
fs/nfs/nfs4_fs.h
浏览文件 @
a9004abc
...
...
@@ -13,30 +13,6 @@
struct
idmap
;
/*
* In a seqid-mutating op, this macro controls which error return
* values trigger incrementation of the seqid.
*
* from rfc 3010:
* The client MUST monotonically increment the sequence number for the
* CLOSE, LOCK, LOCKU, OPEN, OPEN_CONFIRM, and OPEN_DOWNGRADE
* operations. This is true even in the event that the previous
* operation that used the sequence number received an error. The only
* exception to this rule is if the previous operation received one of
* the following errors: NFSERR_STALE_CLIENTID, NFSERR_STALE_STATEID,
* NFSERR_BAD_STATEID, NFSERR_BAD_SEQID, NFSERR_BADXDR,
* NFSERR_RESOURCE, NFSERR_NOFILEHANDLE.
*
*/
#define seqid_mutating_err(err) \
(((err) != NFSERR_STALE_CLIENTID) && \
((err) != NFSERR_STALE_STATEID) && \
((err) != NFSERR_BAD_STATEID) && \
((err) != NFSERR_BAD_SEQID) && \
((err) != NFSERR_BAD_XDR) && \
((err) != NFSERR_RESOURCE) && \
((err) != NFSERR_NOFILEHANDLE))
enum
nfs4_client_state
{
NFS4CLNT_MANAGER_RUNNING
=
0
,
NFS4CLNT_CHECK_LEASE
,
...
...
fs/nfsd/nfs4xdr.c
浏览文件 @
a9004abc
...
...
@@ -1623,18 +1623,6 @@ static void write_cinfo(__be32 **p, struct nfsd4_change_info *c)
\
save = resp->p;
static
bool
seqid_mutating_err
(
__be32
err
)
{
/* rfc 3530 section 8.1.5: */
return
err
!=
nfserr_stale_clientid
&&
err
!=
nfserr_stale_stateid
&&
err
!=
nfserr_bad_stateid
&&
err
!=
nfserr_bad_seqid
&&
err
!=
nfserr_bad_xdr
&&
err
!=
nfserr_resource
&&
err
!=
nfserr_nofilehandle
;
}
/*
* Routine for encoding the result of a "seqid-mutating" NFSv4 operation. This
* is where sequence id's are incremented, and the replay cache is filled.
...
...
@@ -1643,7 +1631,7 @@ static bool seqid_mutating_err(__be32 err)
*/
#define ENCODE_SEQID_OP_TAIL(stateowner) do { \
if (seqid_mutating_err(n
fserr
) && stateowner) { \
if (seqid_mutating_err(n
tohl(nfserr)
) && stateowner) { \
stateowner->so_seqid++; \
stateowner->so_replay.rp_status = nfserr; \
stateowner->so_replay.rp_buflen = \
...
...
include/linux/nfs4.h
浏览文件 @
a9004abc
...
...
@@ -373,6 +373,22 @@ enum nfsstat4 {
NFS4ERR_DELEG_REVOKED
=
10087
,
/* deleg./layout revoked */
};
static
inline
bool
seqid_mutating_err
(
u32
err
)
{
/* rfc 3530 section 8.1.5: */
switch
(
err
)
{
case
NFS4ERR_STALE_CLIENTID
:
case
NFS4ERR_STALE_STATEID
:
case
NFS4ERR_BAD_STATEID
:
case
NFS4ERR_BAD_SEQID
:
case
NFS4ERR_BADXDR
:
case
NFS4ERR_RESOURCE
:
case
NFS4ERR_NOFILEHANDLE
:
return
false
;
};
return
true
;
}
/*
* Note: NF4BAD is not actually part of the protocol; it is just used
* internally by nfsd.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录