Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
6ac90391
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6ac90391
编写于
2月 26, 2014
作者:
J
J. Bruce Fields
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
nfsd4: keep xdr buf length updated
Signed-off-by:
N
J. Bruce Fields
<
bfields@redhat.com
>
上级
dd97fdde
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
15 addition
and
2 deletion
+15
-2
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4proc.c
+2
-0
fs/nfsd/nfs4xdr.c
fs/nfsd/nfs4xdr.c
+13
-2
未找到文件。
fs/nfsd/nfs4proc.c
浏览文件 @
6ac90391
...
...
@@ -1262,6 +1262,8 @@ static void svcxdr_init_encode(struct svc_rqst *rqstp,
xdr
->
iov
=
head
;
xdr
->
p
=
head
->
iov_base
+
head
->
iov_len
;
xdr
->
end
=
head
->
iov_base
+
PAGE_SIZE
-
2
*
RPC_MAX_AUTH_SIZE
;
/* Tail and page_len should be zero at this point: */
buf
->
len
=
buf
->
head
[
0
].
iov_len
;
}
/*
...
...
fs/nfsd/nfs4xdr.c
浏览文件 @
6ac90391
...
...
@@ -3046,6 +3046,7 @@ nfsd4_encode_read(struct nfsd4_compoundres *resp, __be32 nfserr,
if
(
nfserr
)
{
xdr
->
p
-=
2
;
xdr
->
iov
->
iov_len
-=
8
;
xdr
->
buf
->
len
-=
8
;
return
nfserr
;
}
eof
=
(
read
->
rd_offset
+
maxcount
>=
...
...
@@ -3053,9 +3054,10 @@ nfsd4_encode_read(struct nfsd4_compoundres *resp, __be32 nfserr,
WRITE32
(
eof
);
WRITE32
(
maxcount
);
resp
->
xdr
.
buf
->
head
[
0
].
iov_len
=
(
char
*
)
p
-
(
char
*
)
resp
->
xdr
.
buf
->
head
[
0
].
iov_base
;
WARN_ON_ONCE
(
resp
->
xdr
.
buf
->
head
[
0
].
iov_len
!
=
(
char
*
)
p
-
(
char
*
)
resp
->
xdr
.
buf
->
head
[
0
].
iov_base
)
;
resp
->
xdr
.
buf
->
page_len
=
maxcount
;
xdr
->
buf
->
len
+=
maxcount
;
xdr
->
iov
=
xdr
->
buf
->
tail
;
/* Use rest of head for padding and remaining ops: */
...
...
@@ -3066,6 +3068,7 @@ nfsd4_encode_read(struct nfsd4_compoundres *resp, __be32 nfserr,
WRITE32
(
0
);
resp
->
xdr
.
buf
->
tail
[
0
].
iov_base
+=
maxcount
&
3
;
resp
->
xdr
.
buf
->
tail
[
0
].
iov_len
=
4
-
(
maxcount
&
3
);
xdr
->
buf
->
len
-=
(
maxcount
&
3
);
}
return
0
;
}
...
...
@@ -3102,6 +3105,7 @@ nfsd4_encode_readlink(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd
if
(
nfserr
)
{
xdr
->
p
--
;
xdr
->
iov
->
iov_len
-=
4
;
xdr
->
buf
->
len
-=
4
;
return
nfserr
;
}
...
...
@@ -3109,6 +3113,7 @@ nfsd4_encode_readlink(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd
resp
->
xdr
.
buf
->
head
[
0
].
iov_len
=
(
char
*
)
p
-
(
char
*
)
resp
->
xdr
.
buf
->
head
[
0
].
iov_base
;
resp
->
xdr
.
buf
->
page_len
=
maxcount
;
xdr
->
buf
->
len
+=
maxcount
;
xdr
->
iov
=
xdr
->
buf
->
tail
;
/* Use rest of head for padding and remaining ops: */
...
...
@@ -3189,6 +3194,7 @@ nfsd4_encode_readdir(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4
*
p
++
=
htonl
(
readdir
->
common
.
err
==
nfserr_eof
);
resp
->
xdr
.
buf
->
page_len
=
((
char
*
)
p
)
-
(
char
*
)
page_address
(
*
(
resp
->
rqstp
->
rq_next_page
-
1
));
xdr
->
buf
->
len
+=
xdr
->
buf
->
page_len
;
xdr
->
iov
=
xdr
->
buf
->
tail
;
...
...
@@ -3204,6 +3210,7 @@ nfsd4_encode_readdir(struct nfsd4_compoundres *resp, __be32 nfserr, struct nfsd4
xdr
->
p
=
savep
;
xdr
->
iov
->
iov_len
=
((
char
*
)
resp
->
xdr
.
p
)
-
(
char
*
)
resp
->
xdr
.
buf
->
head
[
0
].
iov_base
;
xdr
->
buf
->
len
=
xdr
->
iov
->
iov_len
;
return
nfserr
;
}
...
...
@@ -3789,6 +3796,10 @@ nfs4svc_encode_compoundres(struct svc_rqst *rqstp, __be32 *p, struct nfsd4_compo
* All that remains is to write the tag and operation count...
*/
struct
nfsd4_compound_state
*
cs
=
&
resp
->
cstate
;
struct
xdr_buf
*
buf
=
resp
->
xdr
.
buf
;
WARN_ON_ONCE
(
buf
->
len
!=
buf
->
head
[
0
].
iov_len
+
buf
->
page_len
+
buf
->
tail
[
0
].
iov_len
);
p
=
resp
->
tagp
;
*
p
++
=
htonl
(
resp
->
taglen
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录