Lines Matching refs:size
90 size_t fault_in_iov_iter_readable(const struct iov_iter *i, size_t size) in fault_in_iov_iter_readable() argument
93 size_t n = min(size, iov_iter_count(i)); in fault_in_iov_iter_readable()
95 return size - n; in fault_in_iov_iter_readable()
97 size_t count = min(size, iov_iter_count(i)); in fault_in_iov_iter_readable()
101 size -= count; in fault_in_iov_iter_readable()
113 return count + size; in fault_in_iov_iter_readable()
133 size_t fault_in_iov_iter_writeable(const struct iov_iter *i, size_t size) in fault_in_iov_iter_writeable() argument
136 size_t n = min(size, iov_iter_count(i)); in fault_in_iov_iter_writeable()
138 return size - n; in fault_in_iov_iter_writeable()
140 size_t count = min(size, iov_iter_count(i)); in fault_in_iov_iter_writeable()
144 size -= count; in fault_in_iov_iter_writeable()
156 return count + size; in fault_in_iov_iter_writeable()
490 static void iov_iter_bvec_advance(struct iov_iter *i, size_t size) in iov_iter_bvec_advance() argument
496 i->count -= size; in iov_iter_bvec_advance()
498 size += i->iov_offset; in iov_iter_bvec_advance()
501 if (likely(size < bvec->bv_len)) in iov_iter_bvec_advance()
503 size -= bvec->bv_len; in iov_iter_bvec_advance()
505 i->iov_offset = size; in iov_iter_bvec_advance()
510 static void iov_iter_iovec_advance(struct iov_iter *i, size_t size) in iov_iter_iovec_advance() argument
516 i->count -= size; in iov_iter_iovec_advance()
518 size += i->iov_offset; // from beginning of current segment in iov_iter_iovec_advance()
520 if (likely(size < iov->iov_len)) in iov_iter_iovec_advance()
522 size -= iov->iov_len; in iov_iter_iovec_advance()
524 i->iov_offset = size; in iov_iter_iovec_advance()
529 static void iov_iter_folioq_advance(struct iov_iter *i, size_t size) in iov_iter_folioq_advance() argument
536 i->count -= size; in iov_iter_folioq_advance()
543 size += i->iov_offset; /* From beginning of current segment. */ in iov_iter_folioq_advance()
547 if (likely(size < fsize)) in iov_iter_folioq_advance()
549 size -= fsize; in iov_iter_folioq_advance()
555 } while (size); in iov_iter_folioq_advance()
557 i->iov_offset = size; in iov_iter_folioq_advance()
562 void iov_iter_advance(struct iov_iter *i, size_t size) in iov_iter_advance() argument
564 if (unlikely(i->count < size)) in iov_iter_advance()
565 size = i->count; in iov_iter_advance()
567 i->iov_offset += size; in iov_iter_advance()
568 i->count -= size; in iov_iter_advance()
571 iov_iter_iovec_advance(i, size); in iov_iter_advance()
573 iov_iter_bvec_advance(i, size); in iov_iter_advance()
575 iov_iter_folioq_advance(i, size); in iov_iter_advance()
577 i->count -= size; in iov_iter_advance()
791 size_t size = i->count; in iov_iter_aligned_iovec() local
797 if (len > size) in iov_iter_aligned_iovec()
798 len = size; in iov_iter_aligned_iovec()
805 size -= len; in iov_iter_aligned_iovec()
807 } while (size); in iov_iter_aligned_iovec()
817 size_t size = i->count; in iov_iter_aligned_bvec() local
822 if (len > size) in iov_iter_aligned_bvec()
823 len = size; in iov_iter_aligned_bvec()
830 size -= len; in iov_iter_aligned_bvec()
832 } while (size); in iov_iter_aligned_bvec()
886 size_t size = i->count; in iov_iter_alignment_iovec() local
893 if (len > size) in iov_iter_alignment_iovec()
894 len = size; in iov_iter_alignment_iovec()
896 size -= len; in iov_iter_alignment_iovec()
900 } while (size); in iov_iter_alignment_iovec()
908 size_t size = i->count; in iov_iter_alignment_bvec() local
914 if (len > size) in iov_iter_alignment_bvec()
915 len = size; in iov_iter_alignment_bvec()
918 size -= len; in iov_iter_alignment_bvec()
920 } while (size); in iov_iter_alignment_bvec()
928 size_t size = i->count; in iov_iter_alignment() local
929 if (size) in iov_iter_alignment()
930 return ((unsigned long)i->ubuf + i->iov_offset) | size; in iov_iter_alignment()
955 size_t size = i->count; in iov_iter_gap_alignment() local
971 if (size <= iov->iov_len) in iov_iter_gap_alignment()
973 size -= iov->iov_len; in iov_iter_gap_alignment()
980 static int want_pages_array(struct page ***res, size_t size, in want_pages_array() argument
983 unsigned int count = DIV_ROUND_UP(size + start, PAGE_SIZE); in want_pages_array()
1109 static unsigned long first_iovec_segment(const struct iov_iter *i, size_t *size) in first_iovec_segment() argument
1123 if (*size > len) in first_iovec_segment()
1124 *size = len; in first_iovec_segment()
1132 size_t *size, size_t *start) in first_bvec_segment() argument
1138 if (*size > len) in first_bvec_segment()
1139 *size = len; in first_bvec_segment()
1242 size_t skip = i->iov_offset, size = i->count; in iov_npages() local
1246 for (p = iter_iov(i); size; skip = 0, p++) { in iov_npages()
1248 size_t len = min(p->iov_len - skip, size); in iov_npages()
1251 size -= len; in iov_npages()
1262 size_t skip = i->iov_offset, size = i->count; in bvec_npages() local
1266 for (p = i->bvec; size; skip = 0, p++) { in bvec_npages()
1268 size_t len = min(p->bv_len - skip, size); in bvec_npages()
1270 size -= len; in bvec_npages()
1696 size_t skip = i->iov_offset, size = 0; in iov_iter_extract_bvec_pages() local
1732 size += bv.bv_len; in iov_iter_extract_bvec_pages()
1749 iov_iter_advance(i, size); in iov_iter_extract_bvec_pages()
1750 return size; in iov_iter_extract_bvec_pages()
1765 size_t skip = i->iov_offset, offset, len, size; in iov_iter_extract_kvec_pages() local
1771 size = min(maxsize, i->kvec->iov_len - skip); in iov_iter_extract_kvec_pages()
1772 if (size) in iov_iter_extract_kvec_pages()
1784 maxpages = want_pages_array(pages, size, offset, maxpages); in iov_iter_extract_kvec_pages()
1790 len = offset + size; in iov_iter_extract_kvec_pages()
1804 size = min_t(size_t, size, maxpages * PAGE_SIZE - offset); in iov_iter_extract_kvec_pages()
1805 iov_iter_advance(i, size); in iov_iter_extract_kvec_pages()
1806 return size; in iov_iter_extract_kvec_pages()