fs: pass iocb to do_generic_file_read

And rename it to the more descriptive generic_file_buffered_read while
at it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

authored by

Christoph Hellwig and committed by
Al Viro
47c27bc4 cc4a41fe

+8 -7
+8 -7
mm/filemap.c
··· 1888 } 1889 1890 /** 1891 - * do_generic_file_read - generic file read routine 1892 - * @filp: the file to read 1893 - * @ppos: current file position 1894 * @iter: data destination 1895 * @written: already copied 1896 * ··· 1899 * This is really ugly. But the goto's actually try to clarify some 1900 * of the logic when it comes to error handling etc. 1901 */ 1902 - static ssize_t do_generic_file_read(struct file *filp, loff_t *ppos, 1903 struct iov_iter *iter, ssize_t written) 1904 { 1905 struct address_space *mapping = filp->f_mapping; 1906 struct inode *inode = mapping->host; 1907 struct file_ra_state *ra = &filp->f_ra; 1908 pgoff_t index; 1909 pgoff_t last_index; 1910 pgoff_t prev_index; ··· 2154 ssize_t 2155 generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) 2156 { 2157 - struct file *file = iocb->ki_filp; 2158 - ssize_t retval = 0; 2159 size_t count = iov_iter_count(iter); 2160 2161 if (!count) 2162 goto out; /* skip atime */ 2163 2164 if (iocb->ki_flags & IOCB_DIRECT) { 2165 struct address_space *mapping = file->f_mapping; 2166 struct inode *inode = mapping->host; 2167 loff_t size; ··· 2202 goto out; 2203 } 2204 2205 - retval = do_generic_file_read(file, &iocb->ki_pos, iter, retval); 2206 out: 2207 return retval; 2208 }
··· 1888 } 1889 1890 /** 1891 + * generic_file_buffered_read - generic file read routine 1892 + * @iocb: the iocb to read 1893 * @iter: data destination 1894 * @written: already copied 1895 * ··· 1900 * This is really ugly. But the goto's actually try to clarify some 1901 * of the logic when it comes to error handling etc. 1902 */ 1903 + static ssize_t generic_file_buffered_read(struct kiocb *iocb, 1904 struct iov_iter *iter, ssize_t written) 1905 { 1906 + struct file *filp = iocb->ki_filp; 1907 struct address_space *mapping = filp->f_mapping; 1908 struct inode *inode = mapping->host; 1909 struct file_ra_state *ra = &filp->f_ra; 1910 + loff_t *ppos = &iocb->ki_pos; 1911 pgoff_t index; 1912 pgoff_t last_index; 1913 pgoff_t prev_index; ··· 2153 ssize_t 2154 generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) 2155 { 2156 size_t count = iov_iter_count(iter); 2157 + ssize_t retval = 0; 2158 2159 if (!count) 2160 goto out; /* skip atime */ 2161 2162 if (iocb->ki_flags & IOCB_DIRECT) { 2163 + struct file *file = iocb->ki_filp; 2164 struct address_space *mapping = file->f_mapping; 2165 struct inode *inode = mapping->host; 2166 loff_t size; ··· 2201 goto out; 2202 } 2203 2204 + retval = generic_file_buffered_read(iocb, iter, retval); 2205 out: 2206 return retval; 2207 }