Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
f4362a2c
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看板
提交
f4362a2c
编写于
11月 24, 2014
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch tcp_sock->ucopy from iovec (ucopy.iov) to msghdr (ucopy.msg)
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
f69e6d13
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
6 deletion
+5
-6
include/linux/tcp.h
include/linux/tcp.h
+1
-1
net/ipv4/tcp.c
net/ipv4/tcp.c
+1
-1
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+3
-4
未找到文件。
include/linux/tcp.h
浏览文件 @
f4362a2c
...
...
@@ -162,7 +162,7 @@ struct tcp_sock {
struct
{
struct
sk_buff_head
prequeue
;
struct
task_struct
*
task
;
struct
iovec
*
iov
;
struct
msghdr
*
msg
;
int
memory
;
int
len
;
}
ucopy
;
...
...
net/ipv4/tcp.c
浏览文件 @
f4362a2c
...
...
@@ -1729,7 +1729,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
if
(
!
user_recv
&&
!
(
flags
&
(
MSG_TRUNC
|
MSG_PEEK
)))
{
user_recv
=
current
;
tp
->
ucopy
.
task
=
user_recv
;
tp
->
ucopy
.
iov
=
msg
->
msg_iov
;
tp
->
ucopy
.
msg
=
msg
;
}
tp
->
ucopy
.
len
=
len
;
...
...
net/ipv4/tcp_input.c
浏览文件 @
f4362a2c
...
...
@@ -4421,7 +4421,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
__set_current_state
(
TASK_RUNNING
);
local_bh_enable
();
if
(
!
skb_copy_datagram_
iovec
(
skb
,
0
,
tp
->
ucopy
.
iov
,
chunk
))
{
if
(
!
skb_copy_datagram_
msg
(
skb
,
0
,
tp
->
ucopy
.
msg
,
chunk
))
{
tp
->
ucopy
.
len
-=
chunk
;
tp
->
copied_seq
+=
chunk
;
eaten
=
(
chunk
==
skb
->
len
);
...
...
@@ -4941,10 +4941,9 @@ static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen)
local_bh_enable
();
if
(
skb_csum_unnecessary
(
skb
))
err
=
skb_copy_datagram_
iovec
(
skb
,
hlen
,
tp
->
ucopy
.
iov
,
chunk
);
err
=
skb_copy_datagram_
msg
(
skb
,
hlen
,
tp
->
ucopy
.
msg
,
chunk
);
else
err
=
skb_copy_and_csum_datagram_iovec
(
skb
,
hlen
,
tp
->
ucopy
.
iov
);
err
=
skb_copy_and_csum_datagram_msg
(
skb
,
hlen
,
tp
->
ucopy
.
msg
);
if
(
!
err
)
{
tp
->
ucopy
.
len
-=
chunk
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录