Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
e9d1593d
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
169
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看板
提交
e9d1593d
编写于
4月 06, 2015
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cifs: fold cifs_iovec_write() into the only caller
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
ccca2683
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
31 deletion
+16
-31
fs/cifs/file.c
fs/cifs/file.c
+16
-31
未找到文件。
fs/cifs/file.c
浏览文件 @
e9d1593d
...
...
@@ -2560,9 +2560,9 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from,
return
rc
;
}
static
ssize_t
cifs_iovec_write
(
struct
file
*
file
,
struct
iov_iter
*
from
,
loff_t
*
poffset
)
ssize_t
cifs_user_writev
(
struct
kiocb
*
iocb
,
struct
iov_iter
*
from
)
{
struct
file
*
file
=
iocb
->
ki_filp
;
size_t
len
;
ssize_t
total_written
=
0
;
struct
cifsFileInfo
*
open_file
;
...
...
@@ -2573,8 +2573,14 @@ cifs_iovec_write(struct file *file, struct iov_iter *from, loff_t *poffset)
struct
iov_iter
saved_from
;
int
rc
;
/*
* BB - optimize the way when signing is disabled. We can drop this
* extra memory-to-memory copying and use iovec buffers for constructing
* write request.
*/
len
=
iov_iter_count
(
from
);
rc
=
generic_write_checks
(
file
,
poffset
,
&
len
,
0
);
rc
=
generic_write_checks
(
file
,
&
iocb
->
ki_pos
,
&
len
,
0
);
if
(
rc
)
return
rc
;
...
...
@@ -2593,7 +2599,7 @@ cifs_iovec_write(struct file *file, struct iov_iter *from, loff_t *poffset)
memcpy
(
&
saved_from
,
from
,
sizeof
(
struct
iov_iter
));
rc
=
cifs_write_from_iter
(
*
poffset
,
len
,
from
,
open_file
,
cifs_sb
,
rc
=
cifs_write_from_iter
(
iocb
->
ki_pos
,
len
,
from
,
open_file
,
cifs_sb
,
&
wdata_list
);
/*
...
...
@@ -2633,7 +2639,7 @@ cifs_iovec_write(struct file *file, struct iov_iter *from, loff_t *poffset)
memcpy
(
&
tmp_from
,
&
saved_from
,
sizeof
(
struct
iov_iter
));
iov_iter_advance
(
&
tmp_from
,
wdata
->
offset
-
*
poffset
);
wdata
->
offset
-
iocb
->
ki_pos
);
rc
=
cifs_write_from_iter
(
wdata
->
offset
,
wdata
->
bytes
,
&
tmp_from
,
...
...
@@ -2650,34 +2656,13 @@ cifs_iovec_write(struct file *file, struct iov_iter *from, loff_t *poffset)
kref_put
(
&
wdata
->
refcount
,
cifs_uncached_writedata_release
);
}
if
(
total_written
>
0
)
*
poffset
+=
total_written
;
if
(
unlikely
(
!
total_written
)
)
return
rc
;
iocb
->
ki_pos
+=
total_written
;
set_bit
(
CIFS_INO_INVALID_MAPPING
,
&
CIFS_I
(
file_inode
(
file
))
->
flags
);
cifs_stats_bytes_written
(
tcon
,
total_written
);
return
total_written
?
total_written
:
(
ssize_t
)
rc
;
}
ssize_t
cifs_user_writev
(
struct
kiocb
*
iocb
,
struct
iov_iter
*
from
)
{
ssize_t
written
;
struct
inode
*
inode
;
loff_t
pos
=
iocb
->
ki_pos
;
inode
=
file_inode
(
iocb
->
ki_filp
);
/*
* BB - optimize the way when signing is disabled. We can drop this
* extra memory-to-memory copying and use iovec buffers for constructing
* write request.
*/
written
=
cifs_iovec_write
(
iocb
->
ki_filp
,
from
,
&
pos
);
if
(
written
>
0
)
{
set_bit
(
CIFS_INO_INVALID_MAPPING
,
&
CIFS_I
(
inode
)
->
flags
);
iocb
->
ki_pos
=
pos
;
}
return
written
;
return
total_written
;
}
static
ssize_t
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录