Skip to content

Commit

Permalink
fuse: switch to ->read_iter/->write_iter
Browse files Browse the repository at this point in the history
we just change the calling conventions here; more work to follow.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Apr 12, 2015
1 parent cd28e28 commit fbdbacc
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions fs/fuse/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1363,18 +1363,20 @@ static int fuse_dev_open(struct inode *inode, struct file *file)
return 0;
}

static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos)
static ssize_t fuse_dev_read(struct kiocb *iocb, struct iov_iter *to)
{
struct fuse_copy_state cs;
struct file *file = iocb->ki_filp;
struct fuse_conn *fc = fuse_get_conn(file);
if (!fc)
return -EPERM;

fuse_copy_init(&cs, fc, 1, iov, nr_segs);
if (!iter_is_iovec(to))
return -EINVAL;

fuse_copy_init(&cs, fc, 1, to->iov, to->nr_segs);

return fuse_dev_do_read(fc, file, &cs, iov_length(iov, nr_segs));
return fuse_dev_do_read(fc, file, &cs, iov_iter_count(to));
}

static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
Expand Down Expand Up @@ -1970,17 +1972,19 @@ static ssize_t fuse_dev_do_write(struct fuse_conn *fc,
return err;
}

static ssize_t fuse_dev_write(struct kiocb *iocb, const struct iovec *iov,
unsigned long nr_segs, loff_t pos)
static ssize_t fuse_dev_write(struct kiocb *iocb, struct iov_iter *from)
{
struct fuse_copy_state cs;
struct fuse_conn *fc = fuse_get_conn(iocb->ki_filp);
if (!fc)
return -EPERM;

fuse_copy_init(&cs, fc, 0, iov, nr_segs);
if (!iter_is_iovec(from))
return -EINVAL;

fuse_copy_init(&cs, fc, 0, from->iov, from->nr_segs);

return fuse_dev_do_write(fc, &cs, iov_length(iov, nr_segs));
return fuse_dev_do_write(fc, &cs, iov_iter_count(from));
}

static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe,
Expand Down Expand Up @@ -2232,11 +2236,9 @@ const struct file_operations fuse_dev_operations = {
.owner = THIS_MODULE,
.open = fuse_dev_open,
.llseek = no_llseek,
.read = do_sync_read,
.aio_read = fuse_dev_read,
.read_iter = fuse_dev_read,
.splice_read = fuse_dev_splice_read,
.write = do_sync_write,
.aio_write = fuse_dev_write,
.write_iter = fuse_dev_write,
.splice_write = fuse_dev_splice_write,
.poll = fuse_dev_poll,
.release = fuse_dev_release,
Expand Down

0 comments on commit fbdbacc

Please sign in to comment.