diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-03 15:57:04 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-04-11 22:29:40 -0400 |
commit | cd28e28d801e052a3378161c9cb3231828cfaa77 (patch) | |
tree | a9599da6cd2f68f98a38a71beec7cdf05380f45b /drivers/char/mem.c | |
parent | 5d5d568975307877e9195f5305f4240e506a2807 (diff) |
switch drivers/char/mem.c to ->read_iter/->write_iter
Note that _these_ guys have ->read() and ->write() left in place - they are
eqiuvalent to what we'd get if we replaced those with NULL, but we are
talking about hot paths here.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/char/mem.c')
-rw-r--r-- | drivers/char/mem.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index ad08400491ae..6b1721f978c2 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -607,16 +607,16 @@ static ssize_t write_null(struct file *file, const char __user *buf, | |||
607 | return count; | 607 | return count; |
608 | } | 608 | } |
609 | 609 | ||
610 | static ssize_t aio_read_null(struct kiocb *iocb, const struct iovec *iov, | 610 | static ssize_t read_iter_null(struct kiocb *iocb, struct iov_iter *to) |
611 | unsigned long nr_segs, loff_t pos) | ||
612 | { | 611 | { |
613 | return 0; | 612 | return 0; |
614 | } | 613 | } |
615 | 614 | ||
616 | static ssize_t aio_write_null(struct kiocb *iocb, const struct iovec *iov, | 615 | static ssize_t write_iter_null(struct kiocb *iocb, struct iov_iter *from) |
617 | unsigned long nr_segs, loff_t pos) | ||
618 | { | 616 | { |
619 | return iov_length(iov, nr_segs); | 617 | size_t count = iov_iter_count(from); |
618 | iov_iter_advance(from, count); | ||
619 | return count; | ||
620 | } | 620 | } |
621 | 621 | ||
622 | static int pipe_to_null(struct pipe_inode_info *info, struct pipe_buffer *buf, | 622 | static int pipe_to_null(struct pipe_inode_info *info, struct pipe_buffer *buf, |
@@ -718,7 +718,7 @@ static int open_port(struct inode *inode, struct file *filp) | |||
718 | #define zero_lseek null_lseek | 718 | #define zero_lseek null_lseek |
719 | #define full_lseek null_lseek | 719 | #define full_lseek null_lseek |
720 | #define write_zero write_null | 720 | #define write_zero write_null |
721 | #define aio_write_zero aio_write_null | 721 | #define write_iter_zero write_iter_null |
722 | #define open_mem open_port | 722 | #define open_mem open_port |
723 | #define open_kmem open_mem | 723 | #define open_kmem open_mem |
724 | 724 | ||
@@ -750,8 +750,8 @@ static const struct file_operations null_fops = { | |||
750 | .llseek = null_lseek, | 750 | .llseek = null_lseek, |
751 | .read = read_null, | 751 | .read = read_null, |
752 | .write = write_null, | 752 | .write = write_null, |
753 | .aio_read = aio_read_null, | 753 | .read_iter = read_iter_null, |
754 | .aio_write = aio_write_null, | 754 | .write_iter = write_iter_null, |
755 | .splice_write = splice_write_null, | 755 | .splice_write = splice_write_null, |
756 | }; | 756 | }; |
757 | 757 | ||
@@ -766,7 +766,7 @@ static const struct file_operations zero_fops = { | |||
766 | .llseek = zero_lseek, | 766 | .llseek = zero_lseek, |
767 | .write = write_zero, | 767 | .write = write_zero, |
768 | .read_iter = read_iter_zero, | 768 | .read_iter = read_iter_zero, |
769 | .aio_write = aio_write_zero, | 769 | .write_iter = write_iter_zero, |
770 | .mmap = mmap_zero, | 770 | .mmap = mmap_zero, |
771 | #ifndef CONFIG_MMU | 771 | #ifndef CONFIG_MMU |
772 | .mmap_capabilities = zero_mmap_capabilities, | 772 | .mmap_capabilities = zero_mmap_capabilities, |