diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index c169bdda66a307d9baf3b333f2790587954d346a..bd8e6f8660477d4d02e631815068b143a1000589 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -31,13 +31,10 @@ do { \ */ static int precopy_buffers(struct pvfs2_bufmap *bufmap, int buffer_index, - const struct iovec *vec, - unsigned long nr_segs, + struct iov_iter *iter, size_t total_size) { int ret = 0; - struct iov_iter iter; - /* * copy data from application/kernel by pulling it out * of the iovec. @@ -45,9 +42,8 @@ static int precopy_buffers(struct pvfs2_bufmap *bufmap, if (total_size) { - iov_iter_init(&iter, WRITE, vec, nr_segs, total_size); ret = pvfs_bufmap_copy_from_iovec(bufmap, - &iter, + iter, buffer_index, total_size); if (ret < 0) @@ -152,10 +148,11 @@ static ssize_t wait_for_direct_io(enum PVFS_io_type type, struct inode *inode, * precopy_buffers only pertains to writes. */ if (type == PVFS_IO_WRITE) { + struct iov_iter iter; + iov_iter_init(&iter, WRITE, vec, nr_segs, total_size); ret = precopy_buffers(bufmap, buffer_index, - vec, - nr_segs, + &iter, total_size); if (ret < 0) goto out;