aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/drbd/drbd_main.c2
-rw-r--r--drivers/block/drbd/drbd_receiver.c2
-rw-r--r--drivers/block/loop.c9
-rw-r--r--drivers/block/nbd.c12
-rw-r--r--drivers/fsi/fsi-sbefifo.c4
-rw-r--r--drivers/isdn/mISDN/l1oip_core.c3
-rw-r--r--drivers/misc/vmw_vmci/vmci_queue_pair.c6
-rw-r--r--drivers/nvme/target/io-cmd-file.c2
-rw-r--r--drivers/target/iscsi/iscsi_target_util.c6
-rw-r--r--drivers/target/target_core_file.c6
-rw-r--r--drivers/usb/usbip/usbip_common.c2
-rw-r--r--drivers/xen/pvcalls-back.c8
-rw-r--r--fs/9p/vfs_addr.c4
-rw-r--r--fs/9p/vfs_dir.c2
-rw-r--r--fs/9p/xattr.c4
-rw-r--r--fs/afs/rxrpc.c15
-rw-r--r--fs/ceph/file.c5
-rw-r--r--fs/cifs/connect.c4
-rw-r--r--fs/cifs/misc.c2
-rw-r--r--fs/cifs/smb2ops.c4
-rw-r--r--fs/cifs/transport.c8
-rw-r--r--fs/dlm/lowcomms.c2
-rw-r--r--fs/nfsd/vfs.c4
-rw-r--r--fs/ocfs2/cluster/tcp.c2
-rw-r--r--fs/orangefs/inode.c2
-rw-r--r--fs/splice.c7
-rw-r--r--include/linux/uio.h10
-rw-r--r--lib/iov_iter.c28
-rw-r--r--mm/page_io.c2
-rw-r--r--net/9p/client.c2
-rw-r--r--net/bluetooth/6lowpan.c2
-rw-r--r--net/bluetooth/a2mp.c2
-rw-r--r--net/bluetooth/smp.c2
-rw-r--r--net/ceph/messenger.c6
-rw-r--r--net/netfilter/ipvs/ip_vs_sync.c2
-rw-r--r--net/smc/smc_clc.c4
-rw-r--r--net/socket.c6
-rw-r--r--net/sunrpc/svcsock.c2
-rw-r--r--net/tipc/topsrv.c2
-rw-r--r--net/tls/tls_device.c4
40 files changed, 96 insertions, 105 deletions
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index ef8212a4b73e..ded9735d44af 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -1856,7 +1856,7 @@ int drbd_send(struct drbd_connection *connection, struct socket *sock,
1856 1856
1857 /* THINK if (signal_pending) return ... ? */ 1857 /* THINK if (signal_pending) return ... ? */
1858 1858
1859 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iov, 1, size); 1859 iov_iter_kvec(&msg.msg_iter, WRITE, &iov, 1, size);
1860 1860
1861 if (sock == connection->data.socket) { 1861 if (sock == connection->data.socket) {
1862 rcu_read_lock(); 1862 rcu_read_lock();
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
index 75f6b47169e6..fcc70642b004 100644
--- a/drivers/block/drbd/drbd_receiver.c
+++ b/drivers/block/drbd/drbd_receiver.c
@@ -516,7 +516,7 @@ static int drbd_recv_short(struct socket *sock, void *buf, size_t size, int flag
516 struct msghdr msg = { 516 struct msghdr msg = {
517 .msg_flags = (flags ? flags : MSG_WAITALL | MSG_NOSIGNAL) 517 .msg_flags = (flags ? flags : MSG_WAITALL | MSG_NOSIGNAL)
518 }; 518 };
519 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &iov, 1, size); 519 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, size);
520 return sock_recvmsg(sock, &msg, msg.msg_flags); 520 return sock_recvmsg(sock, &msg, msg.msg_flags);
521} 521}
522 522
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index ea9debf59b22..cb0cc8685076 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -268,7 +268,7 @@ static int lo_write_bvec(struct file *file, struct bio_vec *bvec, loff_t *ppos)
268 struct iov_iter i; 268 struct iov_iter i;
269 ssize_t bw; 269 ssize_t bw;
270 270
271 iov_iter_bvec(&i, ITER_BVEC | WRITE, bvec, 1, bvec->bv_len); 271 iov_iter_bvec(&i, WRITE, bvec, 1, bvec->bv_len);
272 272
273 file_start_write(file); 273 file_start_write(file);
274 bw = vfs_iter_write(file, &i, ppos, 0); 274 bw = vfs_iter_write(file, &i, ppos, 0);
@@ -346,7 +346,7 @@ static int lo_read_simple(struct loop_device *lo, struct request *rq,
346 ssize_t len; 346 ssize_t len;
347 347
348 rq_for_each_segment(bvec, rq, iter) { 348 rq_for_each_segment(bvec, rq, iter) {
349 iov_iter_bvec(&i, ITER_BVEC, &bvec, 1, bvec.bv_len); 349 iov_iter_bvec(&i, READ, &bvec, 1, bvec.bv_len);
350 len = vfs_iter_read(lo->lo_backing_file, &i, &pos, 0); 350 len = vfs_iter_read(lo->lo_backing_file, &i, &pos, 0);
351 if (len < 0) 351 if (len < 0)
352 return len; 352 return len;
@@ -387,7 +387,7 @@ static int lo_read_transfer(struct loop_device *lo, struct request *rq,
387 b.bv_offset = 0; 387 b.bv_offset = 0;
388 b.bv_len = bvec.bv_len; 388 b.bv_len = bvec.bv_len;
389 389
390 iov_iter_bvec(&i, ITER_BVEC, &b, 1, b.bv_len); 390 iov_iter_bvec(&i, READ, &b, 1, b.bv_len);
391 len = vfs_iter_read(lo->lo_backing_file, &i, &pos, 0); 391 len = vfs_iter_read(lo->lo_backing_file, &i, &pos, 0);
392 if (len < 0) { 392 if (len < 0) {
393 ret = len; 393 ret = len;
@@ -554,8 +554,7 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd,
554 } 554 }
555 atomic_set(&cmd->ref, 2); 555 atomic_set(&cmd->ref, 2);
556 556
557 iov_iter_bvec(&iter, ITER_BVEC | rw, bvec, 557 iov_iter_bvec(&iter, rw, bvec, segments, blk_rq_bytes(rq));
558 segments, blk_rq_bytes(rq));
559 iter.iov_offset = offset; 558 iter.iov_offset = offset;
560 559
561 cmd->iocb.ki_pos = pos; 560 cmd->iocb.ki_pos = pos;
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 14a51254c3db..4d4d6129ff66 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -473,7 +473,7 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
473 u32 nbd_cmd_flags = 0; 473 u32 nbd_cmd_flags = 0;
474 int sent = nsock->sent, skip = 0; 474 int sent = nsock->sent, skip = 0;
475 475
476 iov_iter_kvec(&from, WRITE | ITER_KVEC, &iov, 1, sizeof(request)); 476 iov_iter_kvec(&from, WRITE, &iov, 1, sizeof(request));
477 477
478 switch (req_op(req)) { 478 switch (req_op(req)) {
479 case REQ_OP_DISCARD: 479 case REQ_OP_DISCARD:
@@ -564,8 +564,7 @@ send_pages:
564 564
565 dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n", 565 dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n",
566 req, bvec.bv_len); 566 req, bvec.bv_len);
567 iov_iter_bvec(&from, ITER_BVEC | WRITE, 567 iov_iter_bvec(&from, WRITE, &bvec, 1, bvec.bv_len);
568 &bvec, 1, bvec.bv_len);
569 if (skip) { 568 if (skip) {
570 if (skip >= iov_iter_count(&from)) { 569 if (skip >= iov_iter_count(&from)) {
571 skip -= iov_iter_count(&from); 570 skip -= iov_iter_count(&from);
@@ -624,7 +623,7 @@ static struct nbd_cmd *nbd_read_stat(struct nbd_device *nbd, int index)
624 int ret = 0; 623 int ret = 0;
625 624
626 reply.magic = 0; 625 reply.magic = 0;
627 iov_iter_kvec(&to, READ | ITER_KVEC, &iov, 1, sizeof(reply)); 626 iov_iter_kvec(&to, READ, &iov, 1, sizeof(reply));
628 result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL); 627 result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL);
629 if (result <= 0) { 628 if (result <= 0) {
630 if (!nbd_disconnected(config)) 629 if (!nbd_disconnected(config))
@@ -678,8 +677,7 @@ static struct nbd_cmd *nbd_read_stat(struct nbd_device *nbd, int index)
678 struct bio_vec bvec; 677 struct bio_vec bvec;
679 678
680 rq_for_each_segment(bvec, req, iter) { 679 rq_for_each_segment(bvec, req, iter) {
681 iov_iter_bvec(&to, ITER_BVEC | READ, 680 iov_iter_bvec(&to, READ, &bvec, 1, bvec.bv_len);
682 &bvec, 1, bvec.bv_len);
683 result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL); 681 result = sock_xmit(nbd, index, 0, &to, MSG_WAITALL, NULL);
684 if (result <= 0) { 682 if (result <= 0) {
685 dev_err(disk_to_dev(nbd->disk), "Receive data failed (result %d)\n", 683 dev_err(disk_to_dev(nbd->disk), "Receive data failed (result %d)\n",
@@ -1073,7 +1071,7 @@ static void send_disconnects(struct nbd_device *nbd)
1073 for (i = 0; i < config->num_connections; i++) { 1071 for (i = 0; i < config->num_connections; i++) {
1074 struct nbd_sock *nsock = config->socks[i]; 1072 struct nbd_sock *nsock = config->socks[i];
1075 1073
1076 iov_iter_kvec(&from, WRITE | ITER_KVEC, &iov, 1, sizeof(request)); 1074 iov_iter_kvec(&from, WRITE, &iov, 1, sizeof(request));
1077 mutex_lock(&nsock->tx_lock); 1075 mutex_lock(&nsock->tx_lock);
1078 ret = sock_xmit(nbd, i, 1, &from, 0, NULL); 1076 ret = sock_xmit(nbd, i, 1, &from, 0, NULL);
1079 if (ret <= 0) 1077 if (ret <= 0)
diff --git a/drivers/fsi/fsi-sbefifo.c b/drivers/fsi/fsi-sbefifo.c
index ae861342626e..d92f5b87c251 100644
--- a/drivers/fsi/fsi-sbefifo.c
+++ b/drivers/fsi/fsi-sbefifo.c
@@ -638,7 +638,7 @@ static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo)
638 } 638 }
639 ffdc_iov.iov_base = ffdc; 639 ffdc_iov.iov_base = ffdc;
640 ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE; 640 ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE;
641 iov_iter_kvec(&ffdc_iter, WRITE | ITER_KVEC, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE); 641 iov_iter_kvec(&ffdc_iter, WRITE, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
642 cmd[0] = cpu_to_be32(2); 642 cmd[0] = cpu_to_be32(2);
643 cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC); 643 cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC);
644 rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter); 644 rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter);
@@ -735,7 +735,7 @@ int sbefifo_submit(struct device *dev, const __be32 *command, size_t cmd_len,
735 rbytes = (*resp_len) * sizeof(__be32); 735 rbytes = (*resp_len) * sizeof(__be32);
736 resp_iov.iov_base = response; 736 resp_iov.iov_base = response;
737 resp_iov.iov_len = rbytes; 737 resp_iov.iov_len = rbytes;
738 iov_iter_kvec(&resp_iter, WRITE | ITER_KVEC, &resp_iov, 1, rbytes); 738 iov_iter_kvec(&resp_iter, WRITE, &resp_iov, 1, rbytes);
739 739
740 /* Perform the command */ 740 /* Perform the command */
741 mutex_lock(&sbefifo->lock); 741 mutex_lock(&sbefifo->lock);
diff --git a/drivers/isdn/mISDN/l1oip_core.c b/drivers/isdn/mISDN/l1oip_core.c
index b05022f94f18..072bb5e36c18 100644
--- a/drivers/isdn/mISDN/l1oip_core.c
+++ b/drivers/isdn/mISDN/l1oip_core.c
@@ -718,8 +718,7 @@ l1oip_socket_thread(void *data)
718 printk(KERN_DEBUG "%s: socket created and open\n", 718 printk(KERN_DEBUG "%s: socket created and open\n",
719 __func__); 719 __func__);
720 while (!signal_pending(current)) { 720 while (!signal_pending(current)) {
721 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &iov, 1, 721 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, recvbuf_size);
722 recvbuf_size);
723 recvlen = sock_recvmsg(socket, &msg, 0); 722 recvlen = sock_recvmsg(socket, &msg, 0);
724 if (recvlen > 0) { 723 if (recvlen > 0) {
725 l1oip_socket_parse(hc, &sin_rx, recvbuf, recvlen); 724 l1oip_socket_parse(hc, &sin_rx, recvbuf, recvlen);
diff --git a/drivers/misc/vmw_vmci/vmci_queue_pair.c b/drivers/misc/vmw_vmci/vmci_queue_pair.c
index bd52f29b4a4e..264f4ed8eef2 100644
--- a/drivers/misc/vmw_vmci/vmci_queue_pair.c
+++ b/drivers/misc/vmw_vmci/vmci_queue_pair.c
@@ -3030,7 +3030,7 @@ ssize_t vmci_qpair_enqueue(struct vmci_qp *qpair,
3030 if (!qpair || !buf) 3030 if (!qpair || !buf)
3031 return VMCI_ERROR_INVALID_ARGS; 3031 return VMCI_ERROR_INVALID_ARGS;
3032 3032
3033 iov_iter_kvec(&from, WRITE | ITER_KVEC, &v, 1, buf_size); 3033 iov_iter_kvec(&from, WRITE, &v, 1, buf_size);
3034 3034
3035 qp_lock(qpair); 3035 qp_lock(qpair);
3036 3036
@@ -3074,7 +3074,7 @@ ssize_t vmci_qpair_dequeue(struct vmci_qp *qpair,
3074 if (!qpair || !buf) 3074 if (!qpair || !buf)
3075 return VMCI_ERROR_INVALID_ARGS; 3075 return VMCI_ERROR_INVALID_ARGS;
3076 3076
3077 iov_iter_kvec(&to, READ | ITER_KVEC, &v, 1, buf_size); 3077 iov_iter_kvec(&to, READ, &v, 1, buf_size);
3078 3078
3079 qp_lock(qpair); 3079 qp_lock(qpair);
3080 3080
@@ -3119,7 +3119,7 @@ ssize_t vmci_qpair_peek(struct vmci_qp *qpair,
3119 if (!qpair || !buf) 3119 if (!qpair || !buf)
3120 return VMCI_ERROR_INVALID_ARGS; 3120 return VMCI_ERROR_INVALID_ARGS;
3121 3121
3122 iov_iter_kvec(&to, READ | ITER_KVEC, &v, 1, buf_size); 3122 iov_iter_kvec(&to, READ, &v, 1, buf_size);
3123 3123
3124 qp_lock(qpair); 3124 qp_lock(qpair);
3125 3125
diff --git a/drivers/nvme/target/io-cmd-file.c b/drivers/nvme/target/io-cmd-file.c
index 81a9dc5290a8..97f282eca3c2 100644
--- a/drivers/nvme/target/io-cmd-file.c
+++ b/drivers/nvme/target/io-cmd-file.c
@@ -101,7 +101,7 @@ static ssize_t nvmet_file_submit_bvec(struct nvmet_req *req, loff_t pos,
101 rw = READ; 101 rw = READ;
102 } 102 }
103 103
104 iov_iter_bvec(&iter, ITER_BVEC | rw, req->f.bvec, nr_segs, count); 104 iov_iter_bvec(&iter, rw, req->f.bvec, nr_segs, count);
105 105
106 iocb->ki_pos = pos; 106 iocb->ki_pos = pos;
107 iocb->ki_filp = req->ns->file; 107 iocb->ki_filp = req->ns->file;
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c
index 49be1e41290c..991482576417 100644
--- a/drivers/target/iscsi/iscsi_target_util.c
+++ b/drivers/target/iscsi/iscsi_target_util.c
@@ -1258,8 +1258,7 @@ static int iscsit_do_rx_data(
1258 return -1; 1258 return -1;
1259 1259
1260 memset(&msg, 0, sizeof(struct msghdr)); 1260 memset(&msg, 0, sizeof(struct msghdr));
1261 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, 1261 iov_iter_kvec(&msg.msg_iter, READ, count->iov, count->iov_count, data);
1262 count->iov, count->iov_count, data);
1263 1262
1264 while (msg_data_left(&msg)) { 1263 while (msg_data_left(&msg)) {
1265 rx_loop = sock_recvmsg(conn->sock, &msg, MSG_WAITALL); 1264 rx_loop = sock_recvmsg(conn->sock, &msg, MSG_WAITALL);
@@ -1315,8 +1314,7 @@ int tx_data(
1315 1314
1316 memset(&msg, 0, sizeof(struct msghdr)); 1315 memset(&msg, 0, sizeof(struct msghdr));
1317 1316
1318 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, 1317 iov_iter_kvec(&msg.msg_iter, WRITE, iov, iov_count, data);
1319 iov, iov_count, data);
1320 1318
1321 while (msg_data_left(&msg)) { 1319 while (msg_data_left(&msg)) {
1322 int tx_loop = sock_sendmsg(conn->sock, &msg); 1320 int tx_loop = sock_sendmsg(conn->sock, &msg);
diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
index 16751ae55d7b..49b110d1b972 100644
--- a/drivers/target/target_core_file.c
+++ b/drivers/target/target_core_file.c
@@ -303,7 +303,7 @@ fd_execute_rw_aio(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents,
303 len += sg->length; 303 len += sg->length;
304 } 304 }
305 305
306 iov_iter_bvec(&iter, ITER_BVEC | is_write, bvec, sgl_nents, len); 306 iov_iter_bvec(&iter, is_write, bvec, sgl_nents, len);
307 307
308 aio_cmd->cmd = cmd; 308 aio_cmd->cmd = cmd;
309 aio_cmd->len = len; 309 aio_cmd->len = len;
@@ -353,7 +353,7 @@ static int fd_do_rw(struct se_cmd *cmd, struct file *fd,
353 len += sg->length; 353 len += sg->length;
354 } 354 }
355 355
356 iov_iter_bvec(&iter, ITER_BVEC, bvec, sgl_nents, len); 356 iov_iter_bvec(&iter, READ, bvec, sgl_nents, len);
357 if (is_write) 357 if (is_write)
358 ret = vfs_iter_write(fd, &iter, &pos, 0); 358 ret = vfs_iter_write(fd, &iter, &pos, 0);
359 else 359 else
@@ -490,7 +490,7 @@ fd_execute_write_same(struct se_cmd *cmd)
490 len += se_dev->dev_attrib.block_size; 490 len += se_dev->dev_attrib.block_size;
491 } 491 }
492 492
493 iov_iter_bvec(&iter, ITER_BVEC, bvec, nolb, len); 493 iov_iter_bvec(&iter, READ, bvec, nolb, len);
494 ret = vfs_iter_write(fd_dev->fd_file, &iter, &pos, 0); 494 ret = vfs_iter_write(fd_dev->fd_file, &iter, &pos, 0);
495 495
496 kfree(bvec); 496 kfree(bvec);
diff --git a/drivers/usb/usbip/usbip_common.c b/drivers/usb/usbip/usbip_common.c
index 9756752c0681..45da3e01c7b0 100644
--- a/drivers/usb/usbip/usbip_common.c
+++ b/drivers/usb/usbip/usbip_common.c
@@ -309,7 +309,7 @@ int usbip_recv(struct socket *sock, void *buf, int size)
309 if (!sock || !buf || !size) 309 if (!sock || !buf || !size)
310 return -EINVAL; 310 return -EINVAL;
311 311
312 iov_iter_kvec(&msg.msg_iter, READ|ITER_KVEC, &iov, 1, size); 312 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, size);
313 313
314 usbip_dbg_xmit("enter\n"); 314 usbip_dbg_xmit("enter\n");
315 315
diff --git a/drivers/xen/pvcalls-back.c b/drivers/xen/pvcalls-back.c
index b1092fbefa63..2e5d845b5091 100644
--- a/drivers/xen/pvcalls-back.c
+++ b/drivers/xen/pvcalls-back.c
@@ -137,13 +137,13 @@ static void pvcalls_conn_back_read(void *opaque)
137 if (masked_prod < masked_cons) { 137 if (masked_prod < masked_cons) {
138 vec[0].iov_base = data->in + masked_prod; 138 vec[0].iov_base = data->in + masked_prod;
139 vec[0].iov_len = wanted; 139 vec[0].iov_len = wanted;
140 iov_iter_kvec(&msg.msg_iter, ITER_KVEC|WRITE, vec, 1, wanted); 140 iov_iter_kvec(&msg.msg_iter, WRITE, vec, 1, wanted);
141 } else { 141 } else {
142 vec[0].iov_base = data->in + masked_prod; 142 vec[0].iov_base = data->in + masked_prod;
143 vec[0].iov_len = array_size - masked_prod; 143 vec[0].iov_len = array_size - masked_prod;
144 vec[1].iov_base = data->in; 144 vec[1].iov_base = data->in;
145 vec[1].iov_len = wanted - vec[0].iov_len; 145 vec[1].iov_len = wanted - vec[0].iov_len;
146 iov_iter_kvec(&msg.msg_iter, ITER_KVEC|WRITE, vec, 2, wanted); 146 iov_iter_kvec(&msg.msg_iter, WRITE, vec, 2, wanted);
147 } 147 }
148 148
149 atomic_set(&map->read, 0); 149 atomic_set(&map->read, 0);
@@ -195,13 +195,13 @@ static void pvcalls_conn_back_write(struct sock_mapping *map)
195 if (pvcalls_mask(prod, array_size) > pvcalls_mask(cons, array_size)) { 195 if (pvcalls_mask(prod, array_size) > pvcalls_mask(cons, array_size)) {
196 vec[0].iov_base = data->out + pvcalls_mask(cons, array_size); 196 vec[0].iov_base = data->out + pvcalls_mask(cons, array_size);
197 vec[0].iov_len = size; 197 vec[0].iov_len = size;
198 iov_iter_kvec(&msg.msg_iter, ITER_KVEC|READ, vec, 1, size); 198 iov_iter_kvec(&msg.msg_iter, READ, vec, 1, size);
199 } else { 199 } else {
200 vec[0].iov_base = data->out + pvcalls_mask(cons, array_size); 200 vec[0].iov_base = data->out + pvcalls_mask(cons, array_size);
201 vec[0].iov_len = array_size - pvcalls_mask(cons, array_size); 201 vec[0].iov_len = array_size - pvcalls_mask(cons, array_size);
202 vec[1].iov_base = data->out; 202 vec[1].iov_base = data->out;
203 vec[1].iov_len = size - vec[0].iov_len; 203 vec[1].iov_len = size - vec[0].iov_len;
204 iov_iter_kvec(&msg.msg_iter, ITER_KVEC|READ, vec, 2, size); 204 iov_iter_kvec(&msg.msg_iter, READ, vec, 2, size);
205 } 205 }
206 206
207 atomic_set(&map->write, 0); 207 atomic_set(&map->write, 0);
diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
index e1cbdfdb7c68..0bcbcc20f769 100644
--- a/fs/9p/vfs_addr.c
+++ b/fs/9p/vfs_addr.c
@@ -65,7 +65,7 @@ static int v9fs_fid_readpage(struct p9_fid *fid, struct page *page)
65 if (retval == 0) 65 if (retval == 0)
66 return retval; 66 return retval;
67 67
68 iov_iter_bvec(&to, ITER_BVEC | READ, &bvec, 1, PAGE_SIZE); 68 iov_iter_bvec(&to, READ, &bvec, 1, PAGE_SIZE);
69 69
70 retval = p9_client_read(fid, page_offset(page), &to, &err); 70 retval = p9_client_read(fid, page_offset(page), &to, &err);
71 if (err) { 71 if (err) {
@@ -175,7 +175,7 @@ static int v9fs_vfs_writepage_locked(struct page *page)
175 bvec.bv_page = page; 175 bvec.bv_page = page;
176 bvec.bv_offset = 0; 176 bvec.bv_offset = 0;
177 bvec.bv_len = len; 177 bvec.bv_len = len;
178 iov_iter_bvec(&from, ITER_BVEC | WRITE, &bvec, 1, len); 178 iov_iter_bvec(&from, WRITE, &bvec, 1, len);
179 179
180 /* We should have writeback_fid always set */ 180 /* We should have writeback_fid always set */
181 BUG_ON(!v9inode->writeback_fid); 181 BUG_ON(!v9inode->writeback_fid);
diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index b0405d6aac85..d5db3c968a03 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -133,7 +133,7 @@ static int v9fs_dir_readdir(struct file *file, struct dir_context *ctx)
133 if (rdir->tail == rdir->head) { 133 if (rdir->tail == rdir->head) {
134 struct iov_iter to; 134 struct iov_iter to;
135 int n; 135 int n;
136 iov_iter_kvec(&to, READ | ITER_KVEC, &kvec, 1, buflen); 136 iov_iter_kvec(&to, READ, &kvec, 1, buflen);
137 n = p9_client_read(file->private_data, ctx->pos, &to, 137 n = p9_client_read(file->private_data, ctx->pos, &to,
138 &err); 138 &err);
139 if (err) 139 if (err)
diff --git a/fs/9p/xattr.c b/fs/9p/xattr.c
index 352abc39e891..ac8ff8ca4c11 100644
--- a/fs/9p/xattr.c
+++ b/fs/9p/xattr.c
@@ -32,7 +32,7 @@ ssize_t v9fs_fid_xattr_get(struct p9_fid *fid, const char *name,
32 struct iov_iter to; 32 struct iov_iter to;
33 int err; 33 int err;
34 34
35 iov_iter_kvec(&to, READ | ITER_KVEC, &kvec, 1, buffer_size); 35 iov_iter_kvec(&to, READ, &kvec, 1, buffer_size);
36 36
37 attr_fid = p9_client_xattrwalk(fid, name, &attr_size); 37 attr_fid = p9_client_xattrwalk(fid, name, &attr_size);
38 if (IS_ERR(attr_fid)) { 38 if (IS_ERR(attr_fid)) {
@@ -107,7 +107,7 @@ int v9fs_fid_xattr_set(struct p9_fid *fid, const char *name,
107 struct iov_iter from; 107 struct iov_iter from;
108 int retval, err; 108 int retval, err;
109 109
110 iov_iter_kvec(&from, WRITE | ITER_KVEC, &kvec, 1, value_len); 110 iov_iter_kvec(&from, WRITE, &kvec, 1, value_len);
111 111
112 p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu flags = %d\n", 112 p9_debug(P9_DEBUG_VFS, "name = %s value_len = %zu flags = %d\n",
113 name, value_len, flags); 113 name, value_len, flags);
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index 77a83790a31f..639c16882e93 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -286,7 +286,7 @@ static void afs_load_bvec(struct afs_call *call, struct msghdr *msg,
286 offset = 0; 286 offset = 0;
287 } 287 }
288 288
289 iov_iter_bvec(&msg->msg_iter, WRITE | ITER_BVEC, bv, nr, bytes); 289 iov_iter_bvec(&msg->msg_iter, WRITE, bv, nr, bytes);
290} 290}
291 291
292/* 292/*
@@ -401,8 +401,7 @@ long afs_make_call(struct afs_addr_cursor *ac, struct afs_call *call,
401 401
402 msg.msg_name = NULL; 402 msg.msg_name = NULL;
403 msg.msg_namelen = 0; 403 msg.msg_namelen = 0;
404 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iov, 1, 404 iov_iter_kvec(&msg.msg_iter, WRITE, iov, 1, call->request_size);
405 call->request_size);
406 msg.msg_control = NULL; 405 msg.msg_control = NULL;
407 msg.msg_controllen = 0; 406 msg.msg_controllen = 0;
408 msg.msg_flags = MSG_WAITALL | (call->send_pages ? MSG_MORE : 0); 407 msg.msg_flags = MSG_WAITALL | (call->send_pages ? MSG_MORE : 0);
@@ -432,7 +431,7 @@ error_do_abort:
432 rxrpc_kernel_abort_call(call->net->socket, rxcall, 431 rxrpc_kernel_abort_call(call->net->socket, rxcall,
433 RX_USER_ABORT, ret, "KSD"); 432 RX_USER_ABORT, ret, "KSD");
434 } else { 433 } else {
435 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, NULL, 0, 0); 434 iov_iter_kvec(&msg.msg_iter, READ, NULL, 0, 0);
436 rxrpc_kernel_recv_data(call->net->socket, rxcall, 435 rxrpc_kernel_recv_data(call->net->socket, rxcall,
437 &msg.msg_iter, false, 436 &msg.msg_iter, false,
438 &call->abort_code, &call->service_id); 437 &call->abort_code, &call->service_id);
@@ -468,7 +467,7 @@ static void afs_deliver_to_call(struct afs_call *call)
468 if (state == AFS_CALL_SV_AWAIT_ACK) { 467 if (state == AFS_CALL_SV_AWAIT_ACK) {
469 struct iov_iter iter; 468 struct iov_iter iter;
470 469
471 iov_iter_kvec(&iter, READ | ITER_KVEC, NULL, 0, 0); 470 iov_iter_kvec(&iter, READ, NULL, 0, 0);
472 ret = rxrpc_kernel_recv_data(call->net->socket, 471 ret = rxrpc_kernel_recv_data(call->net->socket,
473 call->rxcall, &iter, false, 472 call->rxcall, &iter, false,
474 &remote_abort, 473 &remote_abort,
@@ -825,7 +824,7 @@ void afs_send_empty_reply(struct afs_call *call)
825 824
826 msg.msg_name = NULL; 825 msg.msg_name = NULL;
827 msg.msg_namelen = 0; 826 msg.msg_namelen = 0;
828 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, NULL, 0, 0); 827 iov_iter_kvec(&msg.msg_iter, WRITE, NULL, 0, 0);
829 msg.msg_control = NULL; 828 msg.msg_control = NULL;
830 msg.msg_controllen = 0; 829 msg.msg_controllen = 0;
831 msg.msg_flags = 0; 830 msg.msg_flags = 0;
@@ -864,7 +863,7 @@ void afs_send_simple_reply(struct afs_call *call, const void *buf, size_t len)
864 iov[0].iov_len = len; 863 iov[0].iov_len = len;
865 msg.msg_name = NULL; 864 msg.msg_name = NULL;
866 msg.msg_namelen = 0; 865 msg.msg_namelen = 0;
867 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iov, 1, len); 866 iov_iter_kvec(&msg.msg_iter, WRITE, iov, 1, len);
868 msg.msg_control = NULL; 867 msg.msg_control = NULL;
869 msg.msg_controllen = 0; 868 msg.msg_controllen = 0;
870 msg.msg_flags = 0; 869 msg.msg_flags = 0;
@@ -905,7 +904,7 @@ int afs_extract_data(struct afs_call *call, void *buf, size_t count,
905 904
906 iov.iov_base = buf + call->offset; 905 iov.iov_base = buf + call->offset;
907 iov.iov_len = count - call->offset; 906 iov.iov_len = count - call->offset;
908 iov_iter_kvec(&iter, ITER_KVEC | READ, &iov, 1, count - call->offset); 907 iov_iter_kvec(&iter, READ, &iov, 1, count - call->offset);
909 908
910 ret = rxrpc_kernel_recv_data(net->socket, call->rxcall, &iter, 909 ret = rxrpc_kernel_recv_data(net->socket, call->rxcall, &iter,
911 want_more, &remote_abort, 910 want_more, &remote_abort,
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index 524ecc95b04d..5dd433aa9b23 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -821,7 +821,7 @@ static void ceph_aio_complete_req(struct ceph_osd_request *req)
821 aio_req->total_len = rc + zlen; 821 aio_req->total_len = rc + zlen;
822 } 822 }
823 823
824 iov_iter_bvec(&i, ITER_BVEC, osd_data->bvec_pos.bvecs, 824 iov_iter_bvec(&i, READ, osd_data->bvec_pos.bvecs,
825 osd_data->num_bvecs, 825 osd_data->num_bvecs,
826 osd_data->bvec_pos.iter.bi_size); 826 osd_data->bvec_pos.iter.bi_size);
827 iov_iter_advance(&i, rc); 827 iov_iter_advance(&i, rc);
@@ -1044,8 +1044,7 @@ ceph_direct_read_write(struct kiocb *iocb, struct iov_iter *iter,
1044 int zlen = min_t(size_t, len - ret, 1044 int zlen = min_t(size_t, len - ret,
1045 size - pos - ret); 1045 size - pos - ret);
1046 1046
1047 iov_iter_bvec(&i, ITER_BVEC, bvecs, num_pages, 1047 iov_iter_bvec(&i, READ, bvecs, num_pages, len);
1048 len);
1049 iov_iter_advance(&i, ret); 1048 iov_iter_advance(&i, ret);
1050 iov_iter_zero(zlen, &i); 1049 iov_iter_zero(zlen, &i);
1051 ret += zlen; 1050 ret += zlen;
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 52d71b64c0c6..11bcd2fb90b1 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -588,7 +588,7 @@ cifs_read_from_socket(struct TCP_Server_Info *server, char *buf,
588{ 588{
589 struct msghdr smb_msg; 589 struct msghdr smb_msg;
590 struct kvec iov = {.iov_base = buf, .iov_len = to_read}; 590 struct kvec iov = {.iov_base = buf, .iov_len = to_read};
591 iov_iter_kvec(&smb_msg.msg_iter, READ | ITER_KVEC, &iov, 1, to_read); 591 iov_iter_kvec(&smb_msg.msg_iter, READ, &iov, 1, to_read);
592 592
593 return cifs_readv_from_socket(server, &smb_msg); 593 return cifs_readv_from_socket(server, &smb_msg);
594} 594}
@@ -600,7 +600,7 @@ cifs_read_page_from_socket(struct TCP_Server_Info *server, struct page *page,
600 struct msghdr smb_msg; 600 struct msghdr smb_msg;
601 struct bio_vec bv = { 601 struct bio_vec bv = {
602 .bv_page = page, .bv_len = to_read, .bv_offset = page_offset}; 602 .bv_page = page, .bv_len = to_read, .bv_offset = page_offset};
603 iov_iter_bvec(&smb_msg.msg_iter, READ | ITER_BVEC, &bv, 1, to_read); 603 iov_iter_bvec(&smb_msg.msg_iter, READ, &bv, 1, to_read);
604 return cifs_readv_from_socket(server, &smb_msg); 604 return cifs_readv_from_socket(server, &smb_msg);
605} 605}
606 606
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
index 7b5b960a04b8..10cff44832d8 100644
--- a/fs/cifs/misc.c
+++ b/fs/cifs/misc.c
@@ -857,7 +857,7 @@ setup_aio_ctx_iter(struct cifs_aio_ctx *ctx, struct iov_iter *iter, int rw)
857 ctx->bv = bv; 857 ctx->bv = bv;
858 ctx->len = saved_len - count; 858 ctx->len = saved_len - count;
859 ctx->npages = npages; 859 ctx->npages = npages;
860 iov_iter_bvec(&ctx->iter, ITER_BVEC | rw, ctx->bv, npages, ctx->len); 860 iov_iter_bvec(&ctx->iter, rw, ctx->bv, npages, ctx->len);
861 return 0; 861 return 0;
862} 862}
863 863
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index 89985a0a6819..26f8a65b8722 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -2962,13 +2962,13 @@ handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid,
2962 return 0; 2962 return 0;
2963 } 2963 }
2964 2964
2965 iov_iter_bvec(&iter, WRITE | ITER_BVEC, bvec, npages, data_len); 2965 iov_iter_bvec(&iter, WRITE, bvec, npages, data_len);
2966 } else if (buf_len >= data_offset + data_len) { 2966 } else if (buf_len >= data_offset + data_len) {
2967 /* read response payload is in buf */ 2967 /* read response payload is in buf */
2968 WARN_ONCE(npages > 0, "read data can be either in buf or in pages"); 2968 WARN_ONCE(npages > 0, "read data can be either in buf or in pages");
2969 iov.iov_base = buf + data_offset; 2969 iov.iov_base = buf + data_offset;
2970 iov.iov_len = data_len; 2970 iov.iov_len = data_len;
2971 iov_iter_kvec(&iter, WRITE | ITER_KVEC, &iov, 1, data_len); 2971 iov_iter_kvec(&iter, WRITE, &iov, 1, data_len);
2972 } else { 2972 } else {
2973 /* read response payload cannot be in both buf and pages */ 2973 /* read response payload cannot be in both buf and pages */
2974 WARN_ONCE(1, "buf can not contain only a part of read data"); 2974 WARN_ONCE(1, "buf can not contain only a part of read data");
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index b48f43963da6..146b618802a5 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -307,8 +307,7 @@ __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst,
307 .iov_base = &rfc1002_marker, 307 .iov_base = &rfc1002_marker,
308 .iov_len = 4 308 .iov_len = 4
309 }; 309 };
310 iov_iter_kvec(&smb_msg.msg_iter, WRITE | ITER_KVEC, &hiov, 310 iov_iter_kvec(&smb_msg.msg_iter, WRITE, &hiov, 1, 4);
311 1, 4);
312 rc = smb_send_kvec(server, &smb_msg, &sent); 311 rc = smb_send_kvec(server, &smb_msg, &sent);
313 if (rc < 0) 312 if (rc < 0)
314 goto uncork; 313 goto uncork;
@@ -329,8 +328,7 @@ __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst,
329 size += iov[i].iov_len; 328 size += iov[i].iov_len;
330 } 329 }
331 330
332 iov_iter_kvec(&smb_msg.msg_iter, WRITE | ITER_KVEC, 331 iov_iter_kvec(&smb_msg.msg_iter, WRITE, iov, n_vec, size);
333 iov, n_vec, size);
334 332
335 rc = smb_send_kvec(server, &smb_msg, &sent); 333 rc = smb_send_kvec(server, &smb_msg, &sent);
336 if (rc < 0) 334 if (rc < 0)
@@ -346,7 +344,7 @@ __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst,
346 rqst_page_get_length(&rqst[j], i, &bvec.bv_len, 344 rqst_page_get_length(&rqst[j], i, &bvec.bv_len,
347 &bvec.bv_offset); 345 &bvec.bv_offset);
348 346
349 iov_iter_bvec(&smb_msg.msg_iter, WRITE | ITER_BVEC, 347 iov_iter_bvec(&smb_msg.msg_iter, WRITE,
350 &bvec, 1, bvec.bv_len); 348 &bvec, 1, bvec.bv_len);
351 rc = smb_send_kvec(server, &smb_msg, &sent); 349 rc = smb_send_kvec(server, &smb_msg, &sent);
352 if (rc < 0) 350 if (rc < 0)
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index a5e4a221435c..76976d6e50f9 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -674,7 +674,7 @@ static int receive_from_sock(struct connection *con)
674 nvec = 2; 674 nvec = 2;
675 } 675 }
676 len = iov[0].iov_len + iov[1].iov_len; 676 len = iov[0].iov_len + iov[1].iov_len;
677 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, iov, nvec, len); 677 iov_iter_kvec(&msg.msg_iter, READ, iov, nvec, len);
678 678
679 r = ret = sock_recvmsg(con->sock, &msg, MSG_DONTWAIT | MSG_NOSIGNAL); 679 r = ret = sock_recvmsg(con->sock, &msg, MSG_DONTWAIT | MSG_NOSIGNAL);
680 if (ret <= 0) 680 if (ret <= 0)
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index b53e76391e52..8b90f5480904 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -923,7 +923,7 @@ __be32 nfsd_readv(struct svc_rqst *rqstp, struct svc_fh *fhp,
923 int host_err; 923 int host_err;
924 924
925 trace_nfsd_read_vector(rqstp, fhp, offset, *count); 925 trace_nfsd_read_vector(rqstp, fhp, offset, *count);
926 iov_iter_kvec(&iter, READ | ITER_KVEC, vec, vlen, *count); 926 iov_iter_kvec(&iter, READ, vec, vlen, *count);
927 host_err = vfs_iter_read(file, &iter, &offset, 0); 927 host_err = vfs_iter_read(file, &iter, &offset, 0);
928 return nfsd_finish_read(rqstp, fhp, file, offset, count, host_err); 928 return nfsd_finish_read(rqstp, fhp, file, offset, count, host_err);
929} 929}
@@ -999,7 +999,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
999 if (stable && !use_wgather) 999 if (stable && !use_wgather)
1000 flags |= RWF_SYNC; 1000 flags |= RWF_SYNC;
1001 1001
1002 iov_iter_kvec(&iter, WRITE | ITER_KVEC, vec, vlen, *cnt); 1002 iov_iter_kvec(&iter, WRITE, vec, vlen, *cnt);
1003 host_err = vfs_iter_write(file, &iter, &pos, flags); 1003 host_err = vfs_iter_write(file, &iter, &pos, flags);
1004 if (host_err < 0) 1004 if (host_err < 0)
1005 goto out_nfserr; 1005 goto out_nfserr;
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index 7d9eea7d4a87..e9f236af1927 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -916,7 +916,7 @@ static int o2net_recv_tcp_msg(struct socket *sock, void *data, size_t len)
916{ 916{
917 struct kvec vec = { .iov_len = len, .iov_base = data, }; 917 struct kvec vec = { .iov_len = len, .iov_base = data, };
918 struct msghdr msg = { .msg_flags = MSG_DONTWAIT, }; 918 struct msghdr msg = { .msg_flags = MSG_DONTWAIT, };
919 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, len); 919 iov_iter_kvec(&msg.msg_iter, READ, &vec, 1, len);
920 return sock_recvmsg(sock, &msg, MSG_DONTWAIT); 920 return sock_recvmsg(sock, &msg, MSG_DONTWAIT);
921} 921}
922 922
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index 31932879b716..136a8bdc1d91 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
@@ -25,7 +25,7 @@ static int read_one_page(struct page *page)
25 struct iov_iter to; 25 struct iov_iter to;
26 struct bio_vec bv = {.bv_page = page, .bv_len = PAGE_SIZE}; 26 struct bio_vec bv = {.bv_page = page, .bv_len = PAGE_SIZE};
27 27
28 iov_iter_bvec(&to, ITER_BVEC | READ, &bv, 1, PAGE_SIZE); 28 iov_iter_bvec(&to, READ, &bv, 1, PAGE_SIZE);
29 29
30 gossip_debug(GOSSIP_INODE_DEBUG, 30 gossip_debug(GOSSIP_INODE_DEBUG,
31 "orangefs_readpage called with page %p\n", 31 "orangefs_readpage called with page %p\n",
diff --git a/fs/splice.c b/fs/splice.c
index b3daa971f597..3553f1956508 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -301,7 +301,7 @@ ssize_t generic_file_splice_read(struct file *in, loff_t *ppos,
301 struct kiocb kiocb; 301 struct kiocb kiocb;
302 int idx, ret; 302 int idx, ret;
303 303
304 iov_iter_pipe(&to, ITER_PIPE | READ, pipe, len); 304 iov_iter_pipe(&to, READ, pipe, len);
305 idx = to.idx; 305 idx = to.idx;
306 init_sync_kiocb(&kiocb, in); 306 init_sync_kiocb(&kiocb, in);
307 kiocb.ki_pos = *ppos; 307 kiocb.ki_pos = *ppos;
@@ -386,7 +386,7 @@ static ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
386 */ 386 */
387 offset = *ppos & ~PAGE_MASK; 387 offset = *ppos & ~PAGE_MASK;
388 388
389 iov_iter_pipe(&to, ITER_PIPE | READ, pipe, len + offset); 389 iov_iter_pipe(&to, READ, pipe, len + offset);
390 390
391 res = iov_iter_get_pages_alloc(&to, &pages, len + offset, &base); 391 res = iov_iter_get_pages_alloc(&to, &pages, len + offset, &base);
392 if (res <= 0) 392 if (res <= 0)
@@ -745,8 +745,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
745 left -= this_len; 745 left -= this_len;
746 } 746 }
747 747
748 iov_iter_bvec(&from, ITER_BVEC | WRITE, array, n, 748 iov_iter_bvec(&from, WRITE, array, n, sd.total_len - left);
749 sd.total_len - left);
750 ret = vfs_iter_write(out, &from, &sd.pos, 0); 749 ret = vfs_iter_write(out, &from, &sd.pos, 0);
751 if (ret <= 0) 750 if (ret <= 0)
752 break; 751 break;
diff --git a/include/linux/uio.h b/include/linux/uio.h
index fcabc959c794..3d8f1acc142c 100644
--- a/include/linux/uio.h
+++ b/include/linux/uio.h
@@ -29,7 +29,7 @@ enum iter_type {
29}; 29};
30 30
31struct iov_iter { 31struct iov_iter {
32 int type; 32 unsigned int type;
33 size_t iov_offset; 33 size_t iov_offset;
34 size_t count; 34 size_t count;
35 union { 35 union {
@@ -212,13 +212,13 @@ size_t copy_to_iter_mcsafe(void *addr, size_t bytes, struct iov_iter *i)
212size_t iov_iter_zero(size_t bytes, struct iov_iter *); 212size_t iov_iter_zero(size_t bytes, struct iov_iter *);
213unsigned long iov_iter_alignment(const struct iov_iter *i); 213unsigned long iov_iter_alignment(const struct iov_iter *i);
214unsigned long iov_iter_gap_alignment(const struct iov_iter *i); 214unsigned long iov_iter_gap_alignment(const struct iov_iter *i);
215void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov, 215void iov_iter_init(struct iov_iter *i, unsigned int direction, const struct iovec *iov,
216 unsigned long nr_segs, size_t count); 216 unsigned long nr_segs, size_t count);
217void iov_iter_kvec(struct iov_iter *i, int direction, const struct kvec *kvec, 217void iov_iter_kvec(struct iov_iter *i, unsigned int direction, const struct kvec *kvec,
218 unsigned long nr_segs, size_t count); 218 unsigned long nr_segs, size_t count);
219void iov_iter_bvec(struct iov_iter *i, int direction, const struct bio_vec *bvec, 219void iov_iter_bvec(struct iov_iter *i, unsigned int direction, const struct bio_vec *bvec,
220 unsigned long nr_segs, size_t count); 220 unsigned long nr_segs, size_t count);
221void iov_iter_pipe(struct iov_iter *i, int direction, struct pipe_inode_info *pipe, 221void iov_iter_pipe(struct iov_iter *i, unsigned int direction, struct pipe_inode_info *pipe,
222 size_t count); 222 size_t count);
223ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages, 223ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
224 size_t maxsize, unsigned maxpages, size_t *start); 224 size_t maxsize, unsigned maxpages, size_t *start);
diff --git a/lib/iov_iter.c b/lib/iov_iter.c
index 42d39116a556..c42b928b15ef 100644
--- a/lib/iov_iter.c
+++ b/lib/iov_iter.c
@@ -428,17 +428,19 @@ int iov_iter_fault_in_readable(struct iov_iter *i, size_t bytes)
428} 428}
429EXPORT_SYMBOL(iov_iter_fault_in_readable); 429EXPORT_SYMBOL(iov_iter_fault_in_readable);
430 430
431void iov_iter_init(struct iov_iter *i, int direction, 431void iov_iter_init(struct iov_iter *i, unsigned int direction,
432 const struct iovec *iov, unsigned long nr_segs, 432 const struct iovec *iov, unsigned long nr_segs,
433 size_t count) 433 size_t count)
434{ 434{
435 WARN_ON(direction & ~(READ | WRITE));
436 direction &= READ | WRITE;
437
435 /* It will get better. Eventually... */ 438 /* It will get better. Eventually... */
436 if (uaccess_kernel()) { 439 if (uaccess_kernel()) {
437 direction |= ITER_KVEC; 440 i->type = ITER_KVEC | direction;
438 i->type = direction;
439 i->kvec = (struct kvec *)iov; 441 i->kvec = (struct kvec *)iov;
440 } else { 442 } else {
441 i->type = direction; 443 i->type = ITER_IOVEC | direction;
442 i->iov = iov; 444 i->iov = iov;
443 } 445 }
444 i->nr_segs = nr_segs; 446 i->nr_segs = nr_segs;
@@ -1060,12 +1062,12 @@ size_t iov_iter_single_seg_count(const struct iov_iter *i)
1060} 1062}
1061EXPORT_SYMBOL(iov_iter_single_seg_count); 1063EXPORT_SYMBOL(iov_iter_single_seg_count);
1062 1064
1063void iov_iter_kvec(struct iov_iter *i, int direction, 1065void iov_iter_kvec(struct iov_iter *i, unsigned int direction,
1064 const struct kvec *kvec, unsigned long nr_segs, 1066 const struct kvec *kvec, unsigned long nr_segs,
1065 size_t count) 1067 size_t count)
1066{ 1068{
1067 BUG_ON(!(direction & ITER_KVEC)); 1069 WARN_ON(direction & ~(READ | WRITE));
1068 i->type = direction; 1070 i->type = ITER_KVEC | (direction & (READ | WRITE));
1069 i->kvec = kvec; 1071 i->kvec = kvec;
1070 i->nr_segs = nr_segs; 1072 i->nr_segs = nr_segs;
1071 i->iov_offset = 0; 1073 i->iov_offset = 0;
@@ -1073,12 +1075,12 @@ void iov_iter_kvec(struct iov_iter *i, int direction,
1073} 1075}
1074EXPORT_SYMBOL(iov_iter_kvec); 1076EXPORT_SYMBOL(iov_iter_kvec);
1075 1077
1076void iov_iter_bvec(struct iov_iter *i, int direction, 1078void iov_iter_bvec(struct iov_iter *i, unsigned int direction,
1077 const struct bio_vec *bvec, unsigned long nr_segs, 1079 const struct bio_vec *bvec, unsigned long nr_segs,
1078 size_t count) 1080 size_t count)
1079{ 1081{
1080 BUG_ON(!(direction & ITER_BVEC)); 1082 WARN_ON(direction & ~(READ | WRITE));
1081 i->type = direction; 1083 i->type = ITER_BVEC | (direction & (READ | WRITE));
1082 i->bvec = bvec; 1084 i->bvec = bvec;
1083 i->nr_segs = nr_segs; 1085 i->nr_segs = nr_segs;
1084 i->iov_offset = 0; 1086 i->iov_offset = 0;
@@ -1086,13 +1088,13 @@ void iov_iter_bvec(struct iov_iter *i, int direction,
1086} 1088}
1087EXPORT_SYMBOL(iov_iter_bvec); 1089EXPORT_SYMBOL(iov_iter_bvec);
1088 1090
1089void iov_iter_pipe(struct iov_iter *i, int direction, 1091void iov_iter_pipe(struct iov_iter *i, unsigned int direction,
1090 struct pipe_inode_info *pipe, 1092 struct pipe_inode_info *pipe,
1091 size_t count) 1093 size_t count)
1092{ 1094{
1093 BUG_ON(direction != ITER_PIPE); 1095 BUG_ON(direction != READ);
1094 WARN_ON(pipe->nrbufs == pipe->buffers); 1096 WARN_ON(pipe->nrbufs == pipe->buffers);
1095 i->type = direction; 1097 i->type = ITER_PIPE | READ;
1096 i->pipe = pipe; 1098 i->pipe = pipe;
1097 i->idx = (pipe->curbuf + pipe->nrbufs) & (pipe->buffers - 1); 1099 i->idx = (pipe->curbuf + pipe->nrbufs) & (pipe->buffers - 1);
1098 i->iov_offset = 0; 1100 i->iov_offset = 0;
diff --git a/mm/page_io.c b/mm/page_io.c
index aafd19ec1db4..86de453a60cf 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -294,7 +294,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
294 }; 294 };
295 struct iov_iter from; 295 struct iov_iter from;
296 296
297 iov_iter_bvec(&from, ITER_BVEC | WRITE, &bv, 1, PAGE_SIZE); 297 iov_iter_bvec(&from, WRITE, &bv, 1, PAGE_SIZE);
298 init_sync_kiocb(&kiocb, swap_file); 298 init_sync_kiocb(&kiocb, swap_file);
299 kiocb.ki_pos = page_file_offset(page); 299 kiocb.ki_pos = page_file_offset(page);
300 300
diff --git a/net/9p/client.c b/net/9p/client.c
index deae53a7dffc..a9cd1401bd09 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -2070,7 +2070,7 @@ int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset)
2070 struct kvec kv = {.iov_base = data, .iov_len = count}; 2070 struct kvec kv = {.iov_base = data, .iov_len = count};
2071 struct iov_iter to; 2071 struct iov_iter to;
2072 2072
2073 iov_iter_kvec(&to, READ | ITER_KVEC, &kv, 1, count); 2073 iov_iter_kvec(&to, READ, &kv, 1, count);
2074 2074
2075 p9_debug(P9_DEBUG_9P, ">>> TREADDIR fid %d offset %llu count %d\n", 2075 p9_debug(P9_DEBUG_9P, ">>> TREADDIR fid %d offset %llu count %d\n",
2076 fid->fid, (unsigned long long) offset, count); 2076 fid->fid, (unsigned long long) offset, count);
diff --git a/net/bluetooth/6lowpan.c b/net/bluetooth/6lowpan.c
index 4e2576fc0c59..828e87fe8027 100644
--- a/net/bluetooth/6lowpan.c
+++ b/net/bluetooth/6lowpan.c
@@ -467,7 +467,7 @@ static int send_pkt(struct l2cap_chan *chan, struct sk_buff *skb,
467 iv.iov_len = skb->len; 467 iv.iov_len = skb->len;
468 468
469 memset(&msg, 0, sizeof(msg)); 469 memset(&msg, 0, sizeof(msg));
470 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iv, 1, skb->len); 470 iov_iter_kvec(&msg.msg_iter, WRITE, &iv, 1, skb->len);
471 471
472 err = l2cap_chan_send(chan, &msg, skb->len); 472 err = l2cap_chan_send(chan, &msg, skb->len);
473 if (err > 0) { 473 if (err > 0) {
diff --git a/net/bluetooth/a2mp.c b/net/bluetooth/a2mp.c
index 51c2cf2d8923..58fc6333d412 100644
--- a/net/bluetooth/a2mp.c
+++ b/net/bluetooth/a2mp.c
@@ -63,7 +63,7 @@ static void a2mp_send(struct amp_mgr *mgr, u8 code, u8 ident, u16 len, void *dat
63 63
64 memset(&msg, 0, sizeof(msg)); 64 memset(&msg, 0, sizeof(msg));
65 65
66 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iv, 1, total_len); 66 iov_iter_kvec(&msg.msg_iter, WRITE, &iv, 1, total_len);
67 67
68 l2cap_chan_send(chan, &msg, total_len); 68 l2cap_chan_send(chan, &msg, total_len);
69 69
diff --git a/net/bluetooth/smp.c b/net/bluetooth/smp.c
index a1c1b7e8a45c..c822e626761b 100644
--- a/net/bluetooth/smp.c
+++ b/net/bluetooth/smp.c
@@ -622,7 +622,7 @@ static void smp_send_cmd(struct l2cap_conn *conn, u8 code, u16 len, void *data)
622 622
623 memset(&msg, 0, sizeof(msg)); 623 memset(&msg, 0, sizeof(msg));
624 624
625 iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iv, 2, 1 + len); 625 iov_iter_kvec(&msg.msg_iter, WRITE, iv, 2, 1 + len);
626 626
627 l2cap_chan_send(chan, &msg, 1 + len); 627 l2cap_chan_send(chan, &msg, 1 + len);
628 628
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 0a187196aeed..e493ff77b378 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -526,7 +526,7 @@ static int ceph_tcp_recvmsg(struct socket *sock, void *buf, size_t len)
526 if (!buf) 526 if (!buf)
527 msg.msg_flags |= MSG_TRUNC; 527 msg.msg_flags |= MSG_TRUNC;
528 528
529 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &iov, 1, len); 529 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, len);
530 r = sock_recvmsg(sock, &msg, msg.msg_flags); 530 r = sock_recvmsg(sock, &msg, msg.msg_flags);
531 if (r == -EAGAIN) 531 if (r == -EAGAIN)
532 r = 0; 532 r = 0;
@@ -545,7 +545,7 @@ static int ceph_tcp_recvpage(struct socket *sock, struct page *page,
545 int r; 545 int r;
546 546
547 BUG_ON(page_offset + length > PAGE_SIZE); 547 BUG_ON(page_offset + length > PAGE_SIZE);
548 iov_iter_bvec(&msg.msg_iter, READ | ITER_BVEC, &bvec, 1, length); 548 iov_iter_bvec(&msg.msg_iter, READ, &bvec, 1, length);
549 r = sock_recvmsg(sock, &msg, msg.msg_flags); 549 r = sock_recvmsg(sock, &msg, msg.msg_flags);
550 if (r == -EAGAIN) 550 if (r == -EAGAIN)
551 r = 0; 551 r = 0;
@@ -607,7 +607,7 @@ static int ceph_tcp_sendpage(struct socket *sock, struct page *page,
607 else 607 else
608 msg.msg_flags |= MSG_EOR; /* superfluous, but what the hell */ 608 msg.msg_flags |= MSG_EOR; /* superfluous, but what the hell */
609 609
610 iov_iter_bvec(&msg.msg_iter, WRITE | ITER_BVEC, &bvec, 1, size); 610 iov_iter_bvec(&msg.msg_iter, WRITE, &bvec, 1, size);
611 ret = sock_sendmsg(sock, &msg); 611 ret = sock_sendmsg(sock, &msg);
612 if (ret == -EAGAIN) 612 if (ret == -EAGAIN)
613 ret = 0; 613 ret = 0;
diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
index d4020c5e831d..2526be6b3d90 100644
--- a/net/netfilter/ipvs/ip_vs_sync.c
+++ b/net/netfilter/ipvs/ip_vs_sync.c
@@ -1616,7 +1616,7 @@ ip_vs_receive(struct socket *sock, char *buffer, const size_t buflen)
1616 EnterFunction(7); 1616 EnterFunction(7);
1617 1617
1618 /* Receive a packet */ 1618 /* Receive a packet */
1619 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &iov, 1, buflen); 1619 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, buflen);
1620 len = sock_recvmsg(sock, &msg, MSG_DONTWAIT); 1620 len = sock_recvmsg(sock, &msg, MSG_DONTWAIT);
1621 if (len < 0) 1621 if (len < 0)
1622 return len; 1622 return len;
diff --git a/net/smc/smc_clc.c b/net/smc/smc_clc.c
index 52241d679cc9..89c3a8c7859a 100644
--- a/net/smc/smc_clc.c
+++ b/net/smc/smc_clc.c
@@ -286,7 +286,7 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
286 */ 286 */
287 krflags = MSG_PEEK | MSG_WAITALL; 287 krflags = MSG_PEEK | MSG_WAITALL;
288 smc->clcsock->sk->sk_rcvtimeo = CLC_WAIT_TIME; 288 smc->clcsock->sk->sk_rcvtimeo = CLC_WAIT_TIME;
289 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, 289 iov_iter_kvec(&msg.msg_iter, READ, &vec, 1,
290 sizeof(struct smc_clc_msg_hdr)); 290 sizeof(struct smc_clc_msg_hdr));
291 len = sock_recvmsg(smc->clcsock, &msg, krflags); 291 len = sock_recvmsg(smc->clcsock, &msg, krflags);
292 if (signal_pending(current)) { 292 if (signal_pending(current)) {
@@ -325,7 +325,7 @@ int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
325 325
326 /* receive the complete CLC message */ 326 /* receive the complete CLC message */
327 memset(&msg, 0, sizeof(struct msghdr)); 327 memset(&msg, 0, sizeof(struct msghdr));
328 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &vec, 1, datlen); 328 iov_iter_kvec(&msg.msg_iter, READ, &vec, 1, datlen);
329 krflags = MSG_WAITALL; 329 krflags = MSG_WAITALL;
330 len = sock_recvmsg(smc->clcsock, &msg, krflags); 330 len = sock_recvmsg(smc->clcsock, &msg, krflags);
331 if (len < datlen || !smc_clc_msg_hdr_valid(clcm)) { 331 if (len < datlen || !smc_clc_msg_hdr_valid(clcm)) {
diff --git a/net/socket.c b/net/socket.c
index b68801c7d0ab..fae408abea54 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -635,7 +635,7 @@ EXPORT_SYMBOL(sock_sendmsg);
635int kernel_sendmsg(struct socket *sock, struct msghdr *msg, 635int kernel_sendmsg(struct socket *sock, struct msghdr *msg,
636 struct kvec *vec, size_t num, size_t size) 636 struct kvec *vec, size_t num, size_t size)
637{ 637{
638 iov_iter_kvec(&msg->msg_iter, WRITE | ITER_KVEC, vec, num, size); 638 iov_iter_kvec(&msg->msg_iter, WRITE, vec, num, size);
639 return sock_sendmsg(sock, msg); 639 return sock_sendmsg(sock, msg);
640} 640}
641EXPORT_SYMBOL(kernel_sendmsg); 641EXPORT_SYMBOL(kernel_sendmsg);
@@ -648,7 +648,7 @@ int kernel_sendmsg_locked(struct sock *sk, struct msghdr *msg,
648 if (!sock->ops->sendmsg_locked) 648 if (!sock->ops->sendmsg_locked)
649 return sock_no_sendmsg_locked(sk, msg, size); 649 return sock_no_sendmsg_locked(sk, msg, size);
650 650
651 iov_iter_kvec(&msg->msg_iter, WRITE | ITER_KVEC, vec, num, size); 651 iov_iter_kvec(&msg->msg_iter, WRITE, vec, num, size);
652 652
653 return sock->ops->sendmsg_locked(sk, msg, msg_data_left(msg)); 653 return sock->ops->sendmsg_locked(sk, msg, msg_data_left(msg));
654} 654}
@@ -823,7 +823,7 @@ int kernel_recvmsg(struct socket *sock, struct msghdr *msg,
823 mm_segment_t oldfs = get_fs(); 823 mm_segment_t oldfs = get_fs();
824 int result; 824 int result;
825 825
826 iov_iter_kvec(&msg->msg_iter, READ | ITER_KVEC, vec, num, size); 826 iov_iter_kvec(&msg->msg_iter, READ, vec, num, size);
827 set_fs(KERNEL_DS); 827 set_fs(KERNEL_DS);
828 result = sock_recvmsg(sock, msg, flags); 828 result = sock_recvmsg(sock, msg, flags);
829 set_fs(oldfs); 829 set_fs(oldfs);
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 5445145e639c..0b46ec0bf74e 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -338,7 +338,7 @@ static int svc_recvfrom(struct svc_rqst *rqstp, struct kvec *iov, int nr,
338 rqstp->rq_xprt_hlen = 0; 338 rqstp->rq_xprt_hlen = 0;
339 339
340 clear_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags); 340 clear_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
341 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, iov, nr, buflen); 341 iov_iter_kvec(&msg.msg_iter, READ, iov, nr, buflen);
342 len = sock_recvmsg(svsk->sk_sock, &msg, msg.msg_flags); 342 len = sock_recvmsg(svsk->sk_sock, &msg, msg.msg_flags);
343 /* If we read a full record, then assume there may be more 343 /* If we read a full record, then assume there may be more
344 * data to read (stream based sockets only!) 344 * data to read (stream based sockets only!)
diff --git a/net/tipc/topsrv.c b/net/tipc/topsrv.c
index d8956f7daac4..afa02eeec403 100644
--- a/net/tipc/topsrv.c
+++ b/net/tipc/topsrv.c
@@ -394,7 +394,7 @@ static int tipc_conn_rcv_from_sock(struct tipc_conn *con)
394 iov.iov_base = &s; 394 iov.iov_base = &s;
395 iov.iov_len = sizeof(s); 395 iov.iov_len = sizeof(s);
396 msg.msg_name = NULL; 396 msg.msg_name = NULL;
397 iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, &iov, 1, iov.iov_len); 397 iov_iter_kvec(&msg.msg_iter, READ, &iov, 1, iov.iov_len);
398 ret = sock_recvmsg(con->sock, &msg, MSG_DONTWAIT); 398 ret = sock_recvmsg(con->sock, &msg, MSG_DONTWAIT);
399 if (ret == -EWOULDBLOCK) 399 if (ret == -EWOULDBLOCK)
400 return -EWOULDBLOCK; 400 return -EWOULDBLOCK;
diff --git a/net/tls/tls_device.c b/net/tls/tls_device.c
index 276edbc04f38..d753e362d2d9 100644
--- a/net/tls/tls_device.c
+++ b/net/tls/tls_device.c
@@ -489,7 +489,7 @@ int tls_device_sendpage(struct sock *sk, struct page *page,
489 489
490 iov.iov_base = kaddr + offset; 490 iov.iov_base = kaddr + offset;
491 iov.iov_len = size; 491 iov.iov_len = size;
492 iov_iter_kvec(&msg_iter, WRITE | ITER_KVEC, &iov, 1, size); 492 iov_iter_kvec(&msg_iter, WRITE, &iov, 1, size);
493 rc = tls_push_data(sk, &msg_iter, size, 493 rc = tls_push_data(sk, &msg_iter, size,
494 flags, TLS_RECORD_TYPE_DATA); 494 flags, TLS_RECORD_TYPE_DATA);
495 kunmap(page); 495 kunmap(page);
@@ -538,7 +538,7 @@ static int tls_device_push_pending_record(struct sock *sk, int flags)
538{ 538{
539 struct iov_iter msg_iter; 539 struct iov_iter msg_iter;
540 540
541 iov_iter_kvec(&msg_iter, WRITE | ITER_KVEC, NULL, 0, 0); 541 iov_iter_kvec(&msg_iter, WRITE, NULL, 0, 0);
542 return tls_push_data(sk, &msg_iter, 0, flags, TLS_RECORD_TYPE_DATA); 542 return tls_push_data(sk, &msg_iter, 0, flags, TLS_RECORD_TYPE_DATA);
543} 543}
544 544