diff options
| -rw-r--r-- | fs/gfs2/file.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 763c9a6287d2..ca932cd358d3 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c | |||
| @@ -684,7 +684,7 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, | |||
| 684 | } | 684 | } |
| 685 | 685 | ||
| 686 | /** | 686 | /** |
| 687 | * gfs2_file_aio_write - Perform a write to a file | 687 | * gfs2_file_write_iter - Perform a write to a file |
| 688 | * @iocb: The io context | 688 | * @iocb: The io context |
| 689 | * @iov: The data to write | 689 | * @iov: The data to write |
| 690 | * @nr_segs: Number of @iov segments | 690 | * @nr_segs: Number of @iov segments |
| @@ -697,11 +697,9 @@ static int gfs2_fsync(struct file *file, loff_t start, loff_t end, | |||
| 697 | * | 697 | * |
| 698 | */ | 698 | */ |
| 699 | 699 | ||
| 700 | static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov, | 700 | static ssize_t gfs2_file_write_iter(struct kiocb *iocb, struct iov_iter *from) |
| 701 | unsigned long nr_segs, loff_t pos) | ||
| 702 | { | 701 | { |
| 703 | struct file *file = iocb->ki_filp; | 702 | struct file *file = iocb->ki_filp; |
| 704 | size_t writesize = iov_length(iov, nr_segs); | ||
| 705 | struct gfs2_inode *ip = GFS2_I(file_inode(file)); | 703 | struct gfs2_inode *ip = GFS2_I(file_inode(file)); |
| 706 | int ret; | 704 | int ret; |
| 707 | 705 | ||
| @@ -709,7 +707,7 @@ static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov, | |||
| 709 | if (ret) | 707 | if (ret) |
| 710 | return ret; | 708 | return ret; |
| 711 | 709 | ||
| 712 | gfs2_size_hint(file, pos, writesize); | 710 | gfs2_size_hint(file, iocb->ki_pos, iov_iter_count(from)); |
| 713 | 711 | ||
| 714 | if (file->f_flags & O_APPEND) { | 712 | if (file->f_flags & O_APPEND) { |
| 715 | struct gfs2_holder gh; | 713 | struct gfs2_holder gh; |
| @@ -720,7 +718,7 @@ static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov, | |||
| 720 | gfs2_glock_dq_uninit(&gh); | 718 | gfs2_glock_dq_uninit(&gh); |
| 721 | } | 719 | } |
| 722 | 720 | ||
| 723 | return generic_file_aio_write(iocb, iov, nr_segs, pos); | 721 | return generic_file_write_iter(iocb, from); |
| 724 | } | 722 | } |
| 725 | 723 | ||
| 726 | static int fallocate_chunk(struct inode *inode, loff_t offset, loff_t len, | 724 | static int fallocate_chunk(struct inode *inode, loff_t offset, loff_t len, |
| @@ -1060,8 +1058,8 @@ const struct file_operations gfs2_file_fops = { | |||
| 1060 | .llseek = gfs2_llseek, | 1058 | .llseek = gfs2_llseek, |
| 1061 | .read = new_sync_read, | 1059 | .read = new_sync_read, |
| 1062 | .read_iter = generic_file_read_iter, | 1060 | .read_iter = generic_file_read_iter, |
| 1063 | .write = do_sync_write, | 1061 | .write = new_sync_write, |
| 1064 | .aio_write = gfs2_file_aio_write, | 1062 | .write_iter = gfs2_file_write_iter, |
| 1065 | .unlocked_ioctl = gfs2_ioctl, | 1063 | .unlocked_ioctl = gfs2_ioctl, |
| 1066 | .mmap = gfs2_mmap, | 1064 | .mmap = gfs2_mmap, |
| 1067 | .open = gfs2_open, | 1065 | .open = gfs2_open, |
| @@ -1092,8 +1090,8 @@ const struct file_operations gfs2_file_fops_nolock = { | |||
| 1092 | .llseek = gfs2_llseek, | 1090 | .llseek = gfs2_llseek, |
| 1093 | .read = new_sync_read, | 1091 | .read = new_sync_read, |
| 1094 | .read_iter = generic_file_read_iter, | 1092 | .read_iter = generic_file_read_iter, |
| 1095 | .write = do_sync_write, | 1093 | .write = new_sync_write, |
| 1096 | .aio_write = gfs2_file_aio_write, | 1094 | .write_iter = gfs2_file_write_iter, |
| 1097 | .unlocked_ioctl = gfs2_ioctl, | 1095 | .unlocked_ioctl = gfs2_ioctl, |
| 1098 | .mmap = gfs2_mmap, | 1096 | .mmap = gfs2_mmap, |
| 1099 | .open = gfs2_open, | 1097 | .open = gfs2_open, |
