aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nilfs2
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nilfs2')
-rw-r--r--fs/nilfs2/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
index 1c0e8fedc095..7aaf913e8709 100644
--- a/fs/nilfs2/inode.c
+++ b/fs/nilfs2/inode.c
@@ -304,6 +304,7 @@ nilfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
304 struct file *file = iocb->ki_filp; 304 struct file *file = iocb->ki_filp;
305 struct address_space *mapping = file->f_mapping; 305 struct address_space *mapping = file->f_mapping;
306 struct inode *inode = file->f_mapping->host; 306 struct inode *inode = file->f_mapping->host;
307 size_t count = iov_iter_count(iter);
307 ssize_t size; 308 ssize_t size;
308 309
309 if (rw == WRITE) 310 if (rw == WRITE)
@@ -319,7 +320,7 @@ nilfs_direct_IO(int rw, struct kiocb *iocb, struct iov_iter *iter,
319 */ 320 */
320 if (unlikely((rw & WRITE) && size < 0)) { 321 if (unlikely((rw & WRITE) && size < 0)) {
321 loff_t isize = i_size_read(inode); 322 loff_t isize = i_size_read(inode);
322 loff_t end = offset + iov_length(iter->iov, iter->nr_segs); 323 loff_t end = offset + count;
323 324
324 if (end > isize) 325 if (end > isize)
325 nilfs_write_failed(mapping, end); 326 nilfs_write_failed(mapping, end);