mm/filemap: fix infinite loop in generic_file_buffered_read()
[sfrench/cifs-2.6.git] / mm / filemap.c
index 7a49bac48aea559a17be7b4c0d77c82391d9ac27..5c9d564317a5c5eb2e7f5c4edc6e5e3571bd9c2d 100644 (file)
@@ -2453,6 +2453,9 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb,
 
        if (unlikely(iocb->ki_pos >= inode->i_sb->s_maxbytes))
                return 0;
+       if (unlikely(!iov_iter_count(iter)))
+               return 0;
+
        iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
 
        if (nr_pages > ARRAY_SIZE(pages_onstack))