Loading fs/orangefs/file.c +2 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,8 @@ static int postcopy_buffers(struct pvfs2_bufmap *bufmap, iov_iter_init(&iter, READ, vec, nr_segs, total_size); ret = pvfs_bufmap_copy_to_iovec(bufmap, &iter, buffer_index); buffer_index, total_size); if (ret < 0) gossip_err("%s: Failed to copy-out buffers. Please make sure that the pvfs2-client is running (%ld)\n", __func__, Loading fs/orangefs/pvfs2-bufmap.c +15 −14 Original line number Diff line number Diff line Loading @@ -542,25 +542,26 @@ int pvfs_bufmap_copy_from_iovec(struct pvfs2_bufmap *bufmap, */ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap, struct iov_iter *iter, int buffer_index) int buffer_index, size_t size) { struct pvfs_bufmap_desc *from; struct page *page; struct pvfs_bufmap_desc *from = &bufmap->desc_array[buffer_index]; int i; size_t written; gossip_debug(GOSSIP_BUFMAP_DEBUG, "%s: buffer_index:%d: iov_iter_count(iter):%lu:\n", __func__, buffer_index, iov_iter_count(iter)); "%s: buffer_index:%d: size:%zu:\n", __func__, buffer_index, size); from = &bufmap->desc_array[buffer_index]; for (i = 0; iov_iter_count(iter); i++) { page = from->page_array[i]; written = copy_page_to_iter(page, 0, PAGE_SIZE, iter); if ((written == 0) && (iov_iter_count(iter))) break; for (i = 0; size; i++) { struct page *page = from->page_array[i]; size_t n = size; if (n > PAGE_SIZE) n = PAGE_SIZE; n = copy_page_to_iter(page, 0, n, iter); if (!n) return -EFAULT; size -= n; } return iov_iter_count(iter) ? -EFAULT : 0; return 0; } fs/orangefs/pvfs2-bufmap.h +2 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,8 @@ int pvfs_bufmap_copy_from_iovec(struct pvfs2_bufmap *bufmap, int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap, struct iov_iter *iter, int buffer_index); int buffer_index, size_t size); size_t pvfs_bufmap_copy_to_user_task_iovec(struct task_struct *tsk, struct iovec *iovec, Loading Loading
fs/orangefs/file.c +2 −1 Original line number Diff line number Diff line Loading @@ -89,7 +89,8 @@ static int postcopy_buffers(struct pvfs2_bufmap *bufmap, iov_iter_init(&iter, READ, vec, nr_segs, total_size); ret = pvfs_bufmap_copy_to_iovec(bufmap, &iter, buffer_index); buffer_index, total_size); if (ret < 0) gossip_err("%s: Failed to copy-out buffers. Please make sure that the pvfs2-client is running (%ld)\n", __func__, Loading
fs/orangefs/pvfs2-bufmap.c +15 −14 Original line number Diff line number Diff line Loading @@ -542,25 +542,26 @@ int pvfs_bufmap_copy_from_iovec(struct pvfs2_bufmap *bufmap, */ int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap, struct iov_iter *iter, int buffer_index) int buffer_index, size_t size) { struct pvfs_bufmap_desc *from; struct page *page; struct pvfs_bufmap_desc *from = &bufmap->desc_array[buffer_index]; int i; size_t written; gossip_debug(GOSSIP_BUFMAP_DEBUG, "%s: buffer_index:%d: iov_iter_count(iter):%lu:\n", __func__, buffer_index, iov_iter_count(iter)); "%s: buffer_index:%d: size:%zu:\n", __func__, buffer_index, size); from = &bufmap->desc_array[buffer_index]; for (i = 0; iov_iter_count(iter); i++) { page = from->page_array[i]; written = copy_page_to_iter(page, 0, PAGE_SIZE, iter); if ((written == 0) && (iov_iter_count(iter))) break; for (i = 0; size; i++) { struct page *page = from->page_array[i]; size_t n = size; if (n > PAGE_SIZE) n = PAGE_SIZE; n = copy_page_to_iter(page, 0, n, iter); if (!n) return -EFAULT; size -= n; } return iov_iter_count(iter) ? -EFAULT : 0; return 0; }
fs/orangefs/pvfs2-bufmap.h +2 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,8 @@ int pvfs_bufmap_copy_from_iovec(struct pvfs2_bufmap *bufmap, int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap *bufmap, struct iov_iter *iter, int buffer_index); int buffer_index, size_t size); size_t pvfs_bufmap_copy_to_user_task_iovec(struct task_struct *tsk, struct iovec *iovec, Loading