aboutsummaryrefslogtreecommitdiffstats
path: root/fs/reiserfs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/reiserfs/inode.c')
-rw-r--r--fs/reiserfs/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index 17bf4c41a509..723affe921f1 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -3087,6 +3087,7 @@ static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb,
3087{ 3087{
3088 struct file *file = iocb->ki_filp; 3088 struct file *file = iocb->ki_filp;
3089 struct inode *inode = file->f_mapping->host; 3089 struct inode *inode = file->f_mapping->host;
3090 size_t count = iov_iter_count(iter);
3090 ssize_t ret; 3091 ssize_t ret;
3091 3092
3092 ret = blockdev_direct_IO(rw, iocb, inode, iter->iov, offset, 3093 ret = blockdev_direct_IO(rw, iocb, inode, iter->iov, offset,
@@ -3098,7 +3099,7 @@ static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb,
3098 */ 3099 */
3099 if (unlikely((rw & WRITE) && ret < 0)) { 3100 if (unlikely((rw & WRITE) && ret < 0)) {
3100 loff_t isize = i_size_read(inode); 3101 loff_t isize = i_size_read(inode);
3101 loff_t end = offset + iov_length(iter->iov, iter->nr_segs); 3102 loff_t end = offset + count;
3102 3103
3103 if ((end > isize) && inode_newsize_ok(inode, isize) == 0) { 3104 if ((end > isize) && inode_newsize_ok(inode, isize) == 0) {
3104 truncate_setsize(inode, isize); 3105 truncate_setsize(inode, isize);