Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71d8e532 authored by Al Viro's avatar Al Viro
Browse files

start adding the tag to iov_iter



For now, just use the same thing we pass to ->direct_IO() - it's all
iovec-based at the moment.  Pass it explicitly to iov_iter_init() and
account for kvec vs. iovec in there, by the same kludge NFS ->direct_IO()
uses.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent ed978a81
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1740,7 +1740,7 @@ static ssize_t btrfs_file_aio_write(struct kiocb *iocb,
		goto out;
	}

	iov_iter_init(&i, iov, nr_segs, count, 0);
	iov_iter_init(&i, WRITE, iov, nr_segs, count);

	err = file_remove_suid(file);
	if (err) {
+4 −4
Original line number Diff line number Diff line
@@ -582,7 +582,7 @@ ceph_sync_direct_write(struct kiocb *iocb, const struct iovec *iov,
		CEPH_OSD_FLAG_ONDISK |
		CEPH_OSD_FLAG_WRITE;

	iov_iter_init(&i, iov, nr_segs, count, 0);
	iov_iter_init(&i, WRITE, iov, nr_segs, count);

	while (iov_iter_count(&i) > 0) {
		void __user *data = i.iov->iov_base + i.iov_offset;
@@ -703,7 +703,7 @@ static ssize_t ceph_sync_write(struct kiocb *iocb, const struct iovec *iov,
		CEPH_OSD_FLAG_WRITE |
		CEPH_OSD_FLAG_ACK;

	iov_iter_init(&i, iov, nr_segs, count, 0);
	iov_iter_init(&i, WRITE, iov, nr_segs, count);

	while ((len = iov_iter_count(&i)) > 0) {
		size_t left;
@@ -808,7 +808,7 @@ static ssize_t ceph_aio_read(struct kiocb *iocb, const struct iovec *iov,
	int checkeof = 0, read = 0;
	struct iov_iter i;

	iov_iter_init(&i, iov, nr_segs, len, 0);
	iov_iter_init(&i, READ, iov, nr_segs, len);

again:
	dout("aio_read %p %llx.%llx %llu~%u trying to get caps on %p\n",
@@ -961,7 +961,7 @@ retry_snap:
		 * are pending vmtruncate. So write and vmtruncate
		 * can not run at the same time
		 */
		iov_iter_init(&from, iov, nr_segs, count, 0);
		iov_iter_init(&from, WRITE, iov, nr_segs, count);
		written = generic_perform_write(file, &from, pos);
		if (likely(written >= 0))
			iocb->ki_pos = pos + written;
+2 −2
Original line number Diff line number Diff line
@@ -2424,7 +2424,7 @@ cifs_iovec_write(struct file *file, const struct iovec *iov,
	else
		pid = current->tgid;

	iov_iter_init(&it, iov, nr_segs, len, 0);
	iov_iter_init(&it, WRITE, iov, nr_segs, len);
	do {
		size_t save_len;

@@ -2854,7 +2854,7 @@ ssize_t cifs_user_readv(struct kiocb *iocb, const struct iovec *iov,
	if (!len)
		return 0;

	iov_iter_init(&to, iov, nr_segs, len, 0);
	iov_iter_init(&to, READ, iov, nr_segs, len);

	INIT_LIST_HEAD(&rdata_list);
	cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
+3 −3
Original line number Diff line number Diff line
@@ -1217,7 +1217,7 @@ static ssize_t fuse_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
	err = generic_write_checks(file, &pos, &count, S_ISBLK(inode->i_mode));
	if (err)
		goto out;
	iov_iter_init(&i, iov, nr_segs, count, 0);
	iov_iter_init(&i, WRITE, iov, nr_segs, count);

	if (count == 0)
		goto out;
@@ -1386,7 +1386,7 @@ ssize_t fuse_direct_io(struct fuse_io_priv *io, const struct iovec *iov,
	struct fuse_req *req;
	struct iov_iter ii;

	iov_iter_init(&ii, iov, nr_segs, count, 0);
	iov_iter_init(&ii, write ? WRITE : READ, iov, nr_segs, count);

	if (io->async)
		req = fuse_get_req_for_background(fc, fuse_iter_npages(&ii));
@@ -2367,7 +2367,7 @@ static int fuse_ioctl_copy_user(struct page **pages, struct iovec *iov,
	if (!bytes)
		return 0;

	iov_iter_init(&ii, iov, nr_segs, bytes, 0);
	iov_iter_init(&ii, to_user ? READ : WRITE, iov, nr_segs, bytes);

	while (iov_iter_count(&ii)) {
		struct page *page = pages[page_idx++];
+2 −2
Original line number Diff line number Diff line
@@ -173,7 +173,7 @@ nfs_file_read(struct kiocb *iocb, const struct iovec *iov,
	ssize_t result;
	struct iov_iter to;

	iov_iter_init(&to, iov, nr_segs, count, 0);
	iov_iter_init(&to, READ, iov, nr_segs, count);

	if (iocb->ki_filp->f_flags & O_DIRECT)
		return nfs_file_direct_read(iocb, &to, pos, true);
@@ -648,7 +648,7 @@ ssize_t nfs_file_write(struct kiocb *iocb, const struct iovec *iov,
	ssize_t result;
	size_t count = iov_length(iov, nr_segs);
	struct iov_iter from;
	iov_iter_init(&from, iov, nr_segs, count, 0);
	iov_iter_init(&from, WRITE, iov, nr_segs, count);

	result = nfs_key_timeout_notify(file, inode);
	if (result)
Loading