rw.c (cecdd52a3dd312564f81a39df08378b7b39a2654) rw.c (de4f5fed3f231a8ff4790bf52975f847b95b85ea)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/kernel.h>
3#include <linux/errno.h>
4#include <linux/fs.h>
5#include <linux/file.h>
6#include <linux/blk-mq.h>
7#include <linux/mm.h>
8#include <linux/slab.h>

--- 489 unchanged lines hidden (view full) ---

498 io->free_iovec = iovec;
499 io->bytes_done = 0;
500 /* can only be fixed buffers, no need to do anything */
501 if (iov_iter_is_bvec(iter) || iter_is_ubuf(iter))
502 return;
503 if (!iovec) {
504 unsigned iov_off = 0;
505
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/kernel.h>
3#include <linux/errno.h>
4#include <linux/fs.h>
5#include <linux/file.h>
6#include <linux/blk-mq.h>
7#include <linux/mm.h>
8#include <linux/slab.h>

--- 489 unchanged lines hidden (view full) ---

498 io->free_iovec = iovec;
499 io->bytes_done = 0;
500 /* can only be fixed buffers, no need to do anything */
501 if (iov_iter_is_bvec(iter) || iter_is_ubuf(iter))
502 return;
503 if (!iovec) {
504 unsigned iov_off = 0;
505
506 io->s.iter.iov = io->s.fast_iov;
507 if (iter->iov != fast_iov) {
508 iov_off = iter->iov - fast_iov;
509 io->s.iter.iov += iov_off;
506 io->s.iter.__iov = io->s.fast_iov;
507 if (iter->__iov != fast_iov) {
508 iov_off = iter_iov(iter) - fast_iov;
509 io->s.iter.__iov += iov_off;
510 }
511 if (io->s.fast_iov != fast_iov)
512 memcpy(io->s.fast_iov + iov_off, fast_iov + iov_off,
513 sizeof(struct iovec) * iter->nr_segs);
514 } else {
515 req->flags |= REQ_F_NEED_CLEANUP;
516 }
517}

--- 567 unchanged lines hidden ---
510 }
511 if (io->s.fast_iov != fast_iov)
512 memcpy(io->s.fast_iov + iov_off, fast_iov + iov_off,
513 sizeof(struct iovec) * iter->nr_segs);
514 } else {
515 req->flags |= REQ_F_NEED_CLEANUP;
516 }
517}

--- 567 unchanged lines hidden ---