diff options
Diffstat (limited to 'xlators/performance/io-cache')
-rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 20 | ||||
-rw-r--r-- | xlators/performance/io-cache/src/page.c | 10 |
2 files changed, 4 insertions, 26 deletions
diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index 95ba2e19b9e..711afdf700d 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -87,14 +87,6 @@ ioc_update_pages(call_frame_t *frame, ioc_inode_t *ioc_inode, write_offset = 0; off_t page_offset = 0, page_end = 0; ioc_page_t *trav = NULL; - struct iovec pagevector = - { - 0, - }, - writevector = { - 0, - }; - int pvcount = 0, wvcount; size = iov_length(vector, count); size = min(size, op_ret); @@ -120,16 +112,8 @@ ioc_update_pages(call_frame_t *frame, ioc_inode_t *ioc_inode, page_end = trav->size; } - wvcount = iov_subset(vector, count, write_offset, - write_offset + (page_end - page_offset), - &writevector); - if (wvcount) { - pvcount = iov_subset(trav->vector, trav->count, page_offset, - page_end, &pagevector); - if (pvcount) { - iov_copy(&pagevector, pvcount, &writevector, wvcount); - } - } + iov_range_copy(trav->vector, trav->count, page_offset, vector, + count, write_offset, page_end - page_offset); } else if (trav) { if (!trav->waitq) ioc_inode->table->cache_used -= __ioc_page_destroy(trav); diff --git a/xlators/performance/io-cache/src/page.c b/xlators/performance/io-cache/src/page.c index 4a9679cf0ce..69b4fc0573f 100644 --- a/xlators/performance/io-cache/src/page.c +++ b/xlators/performance/io-cache/src/page.c @@ -727,11 +727,8 @@ __ioc_frame_fill(ioc_page_t *page, call_frame_t *frame, off_t offset, new->size = copy_size; new->iobref = iobref_ref(page->iobref); new->count = iov_subset(page->vector, page->count, src_offset, - src_offset + copy_size, NULL); - - new->vector = GF_CALLOC(new->count, sizeof(struct iovec), - gf_ioc_mt_iovec); - if (new->vector == NULL) { + copy_size, &new->vector, 0); + if (new->count < 0) { local->op_ret = -1; local->op_errno = ENOMEM; @@ -740,9 +737,6 @@ __ioc_frame_fill(ioc_page_t *page, call_frame_t *frame, off_t offset, goto out; } - new->count = iov_subset(page->vector, page->count, src_offset, - src_offset + copy_size, new->vector); - /* add the ioc_fill to fill_list for this frame */ if (list_empty(&local->fill_list)) { /* if list is empty, then this is the first |