diff --git a/mm/filemap.c b/mm/filemap.c index dc92647f62a9..20e6c89e5fa9 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2604,7 +2604,7 @@ ssize_t filemap_read(struct kiocb *iocb, struct iov_iter *iter, if (unlikely(!iov_iter_count(iter))) return 0; - iov_iter_truncate(iter, inode->i_sb->s_maxbytes); + iov_iter_truncate(iter, inode->i_sb->s_maxbytes - iocb->ki_pos); folio_batch_init(&fbatch); do {