提交 5f0e3c95 编写于 作者: A Al Viro 提交者: Mike Marshall

orangefs: make postcopy_buffers() take iov_iter

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NMike Marshall <hubcap@omnibond.com>
上级 34204fde
...@@ -72,23 +72,18 @@ static int precopy_buffers(struct pvfs2_bufmap *bufmap, ...@@ -72,23 +72,18 @@ static int precopy_buffers(struct pvfs2_bufmap *bufmap,
*/ */
static int postcopy_buffers(struct pvfs2_bufmap *bufmap, static int postcopy_buffers(struct pvfs2_bufmap *bufmap,
int buffer_index, int buffer_index,
const struct iovec *vec, struct iov_iter *iter,
int nr_segs,
size_t total_size) size_t total_size)
{ {
int ret = 0; int ret = 0;
struct iov_iter iter;
/* /*
* copy data to application/kernel by pushing it out to * copy data to application/kernel by pushing it out to
* the iovec. NOTE; target buffers can be addresses or * the iovec. NOTE; target buffers can be addresses or
* struct page pointers. * struct page pointers.
*/ */
if (total_size) { if (total_size) {
iov_iter_init(&iter, READ, vec, nr_segs, total_size);
ret = pvfs_bufmap_copy_to_iovec(bufmap, ret = pvfs_bufmap_copy_to_iovec(bufmap,
&iter, iter,
buffer_index, buffer_index,
total_size); total_size);
if (ret < 0) if (ret < 0)
...@@ -221,10 +216,11 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode, ...@@ -221,10 +216,11 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode,
* postcopy_buffers only pertains to reads. * postcopy_buffers only pertains to reads.
*/ */
if (type == PVFS_IO_READ) { if (type == PVFS_IO_READ) {
struct iov_iter iter;
iov_iter_init(&iter, READ, vec, nr_segs, new_op->downcall.resp.io.amt_complete);
ret = postcopy_buffers(bufmap, ret = postcopy_buffers(bufmap,
buffer_index, buffer_index,
vec, &iter,
nr_segs,
new_op->downcall.resp.io.amt_complete); new_op->downcall.resp.io.amt_complete);
if (ret < 0) { if (ret < 0) {
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册