Commit 00e23707 authored by David Howells's avatar David Howells
Browse files

iov_iter: Use accessor function



Use accessor functions to access an iterator's type and direction.  This
allows for the possibility of using some other method of determining the
type of iterator than if-chains with bitwise-AND conditions.

Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
parent 1fcb748d
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1255,7 +1255,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
	/*
	/*
	 * success
	 * success
	 */
	 */
	if (((iter->type & WRITE) && (!map_data || !map_data->null_mapped)) ||
	if ((iov_iter_rw(iter) == WRITE && (!map_data || !map_data->null_mapped)) ||
	    (map_data && map_data->from_user)) {
	    (map_data && map_data->from_user)) {
		ret = bio_copy_from_iter(bio, iter);
		ret = bio_copy_from_iter(bio, iter);
		if (ret)
		if (ret)
+1 −1
Original line number Original line Diff line number Diff line
@@ -349,7 +349,7 @@ __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, int nr_pages)


	dio->size = 0;
	dio->size = 0;
	dio->multi_bio = false;
	dio->multi_bio = false;
	dio->should_dirty = is_read && (iter->type == ITER_IOVEC);
	dio->should_dirty = is_read && iter_is_iovec(iter);


	blk_start_plug(&plug);
	blk_start_plug(&plug);
	for (;;) {
	for (;;) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -658,7 +658,7 @@ static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *to,
	if (ret < 0)
	if (ret < 0)
		return ret;
		return ret;


	if (unlikely(to->type & ITER_PIPE)) {
	if (unlikely(iov_iter_is_pipe(to))) {
		size_t page_off;
		size_t page_off;
		ret = iov_iter_get_pages_alloc(to, &pages, len,
		ret = iov_iter_get_pages_alloc(to, &pages, len,
					       &page_off);
					       &page_off);
+2 −2
Original line number Original line Diff line number Diff line
@@ -2990,7 +2990,7 @@ cifs_readdata_to_iov(struct cifs_readdata *rdata, struct iov_iter *iter)
		size_t copy = min_t(size_t, remaining, PAGE_SIZE);
		size_t copy = min_t(size_t, remaining, PAGE_SIZE);
		size_t written;
		size_t written;


		if (unlikely(iter->type & ITER_PIPE)) {
		if (unlikely(iov_iter_is_pipe(iter))) {
			void *addr = kmap_atomic(page);
			void *addr = kmap_atomic(page);


			written = copy_to_iter(addr, copy, iter);
			written = copy_to_iter(addr, copy, iter);
@@ -3302,7 +3302,7 @@ ssize_t cifs_user_readv(struct kiocb *iocb, struct iov_iter *to)
	if (!is_sync_kiocb(iocb))
	if (!is_sync_kiocb(iocb))
		ctx->iocb = iocb;
		ctx->iocb = iocb;


	if (to->type == ITER_IOVEC)
	if (iter_is_iovec(to))
		ctx->should_dirty = true;
		ctx->should_dirty = true;


	rc = setup_aio_ctx_iter(ctx, to, READ);
	rc = setup_aio_ctx_iter(ctx, to, READ);
+1 −1
Original line number Original line Diff line number Diff line
@@ -786,7 +786,7 @@ setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw)
	struct page **pages = NULL;
	struct page **pages = NULL;
	struct bio_vec *bv = NULL;
	struct bio_vec *bv = NULL;


	if (iter->type & ITER_KVEC) {
	if (iov_iter_is_kvec(iter)) {
		memcpy(&ctx->iter, iter, sizeof(struct iov_iter));
		memcpy(&ctx->iter, iter, sizeof(struct iov_iter));
		ctx->len = count;
		ctx->len = count;
		iov_iter_advance(iter, count);
		iov_iter_advance(iter, count);
Loading