Message ID | 20201102184312.25926-2-willy@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Refactor generic_file_buffered_read | expand |
On Mon, Nov 02, 2020 at 06:42:56PM +0000, Matthew Wilcox (Oracle) wrote: > The recent split of generic_file_buffered_read() created some very > long function names which are hard to distinguish from each other. > Rename as follows: > > generic_file_buffered_read_readpage -> filemap_read_page > generic_file_buffered_read_pagenotuptodate -> filemap_update_page > generic_file_buffered_read_no_cached_page -> filemap_create_page > generic_file_buffered_read_get_pages -> filemap_get_pages > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Kent Overstreet <kent.overstreet@gmail.com>
On Mon, Nov 02, 2020 at 06:42:56PM +0000, Matthew Wilcox (Oracle) wrote: > The recent split of generic_file_buffered_read() created some very > long function names which are hard to distinguish from each other. > Rename as follows: > > generic_file_buffered_read_readpage -> filemap_read_page > generic_file_buffered_read_pagenotuptodate -> filemap_update_page > generic_file_buffered_read_no_cached_page -> filemap_create_page > generic_file_buffered_read_get_pages -> filemap_get_pages Find with me, although I think filemap_find_get_pages would be a better name for filemap_get_pages.
On Tue, Nov 03, 2020 at 08:27:00AM +0100, Christoph Hellwig wrote: > On Mon, Nov 02, 2020 at 06:42:56PM +0000, Matthew Wilcox (Oracle) wrote: > > The recent split of generic_file_buffered_read() created some very > > long function names which are hard to distinguish from each other. > > Rename as follows: > > > > generic_file_buffered_read_readpage -> filemap_read_page > > generic_file_buffered_read_pagenotuptodate -> filemap_update_page > > generic_file_buffered_read_no_cached_page -> filemap_create_page > > generic_file_buffered_read_get_pages -> filemap_get_pages > > Find with me, although I think filemap_find_get_pages would be a better > name for filemap_get_pages. To me, 'find' means 'starting from this position, search forward in the array for the next page', but we don't want to do that, we just want to get a batch of pages starting _at_ this index. Arguably it'd be better named filemap_get_or_create_batch().
On Tue, Nov 3, 2020 at 6:53 AM Matthew Wilcox <willy@infradead.org> wrote: > > On Tue, Nov 03, 2020 at 08:27:00AM +0100, Christoph Hellwig wrote: > > On Mon, Nov 02, 2020 at 06:42:56PM +0000, Matthew Wilcox (Oracle) wrote: > > > The recent split of generic_file_buffered_read() created some very > > > long function names which are hard to distinguish from each other. > > > Rename as follows: > > > > > > generic_file_buffered_read_readpage -> filemap_read_page > > > generic_file_buffered_read_pagenotuptodate -> filemap_update_page > > > generic_file_buffered_read_no_cached_page -> filemap_create_page > > > generic_file_buffered_read_get_pages -> filemap_get_pages > > > > Find with me, although I think filemap_find_get_pages would be a better > > name for filemap_get_pages. > > To me, 'find' means 'starting from this position, search forward in the > array for the next page', but we don't want to do that, we just want to > get a batch of pages starting _at_ this index. Arguably it'd be better > named filemap_get_or_create_batch(). filemap_get_or_crerate_batch() would be a better name, as to me, find entails "begin here and continue looking for the next instance" (in this case, an instance would be a page). Best regards, Amy Parker (they/them)
diff --git a/mm/filemap.c b/mm/filemap.c index a68516ddeddc..23e3781b3aef 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2176,11 +2176,8 @@ static int lock_page_for_iocb(struct kiocb *iocb, struct page *page) return lock_page_killable(page); } -static struct page * -generic_file_buffered_read_readpage(struct kiocb *iocb, - struct file *filp, - struct address_space *mapping, - struct page *page) +static struct page *filemap_read_page(struct kiocb *iocb, struct file *filp, + struct address_space *mapping, struct page *page) { struct file_ra_state *ra = &filp->f_ra; int error; @@ -2231,12 +2228,9 @@ generic_file_buffered_read_readpage(struct kiocb *iocb, return page; } -static struct page * -generic_file_buffered_read_pagenotuptodate(struct kiocb *iocb, - struct file *filp, - struct iov_iter *iter, - struct page *page, - loff_t pos, loff_t count) +static struct page *filemap_update_page(struct kiocb *iocb, struct file *filp, + struct iov_iter *iter, struct page *page, loff_t pos, + loff_t count) { struct address_space *mapping = filp->f_mapping; struct inode *inode = mapping->host; @@ -2299,12 +2293,11 @@ generic_file_buffered_read_pagenotuptodate(struct kiocb *iocb, return page; } - return generic_file_buffered_read_readpage(iocb, filp, mapping, page); + return filemap_read_page(iocb, filp, mapping, page); } -static struct page * -generic_file_buffered_read_no_cached_page(struct kiocb *iocb, - struct iov_iter *iter) +static struct page *filemap_create_page(struct kiocb *iocb, + struct iov_iter *iter) { struct file *filp = iocb->ki_filp; struct address_space *mapping = filp->f_mapping; @@ -2315,10 +2308,6 @@ generic_file_buffered_read_no_cached_page(struct kiocb *iocb, if (iocb->ki_flags & IOCB_NOIO) return ERR_PTR(-EAGAIN); - /* - * Ok, it wasn't cached, so we need to create a new - * page.. - */ page = page_cache_alloc(mapping); if (!page) return ERR_PTR(-ENOMEM); @@ -2330,13 +2319,11 @@ generic_file_buffered_read_no_cached_page(struct kiocb *iocb, return error != -EEXIST ? ERR_PTR(error) : NULL; } - return generic_file_buffered_read_readpage(iocb, filp, mapping, page); + return filemap_read_page(iocb, filp, mapping, page); } -static int generic_file_buffered_read_get_pages(struct kiocb *iocb, - struct iov_iter *iter, - struct page **pages, - unsigned int nr) +static int filemap_get_pages(struct kiocb *iocb, struct iov_iter *iter, + struct page **pages, unsigned int nr) { struct file *filp = iocb->ki_filp; struct address_space *mapping = filp->f_mapping; @@ -2363,7 +2350,7 @@ static int generic_file_buffered_read_get_pages(struct kiocb *iocb, if (nr_got) goto got_pages; - pages[0] = generic_file_buffered_read_no_cached_page(iocb, iter); + pages[0] = filemap_create_page(iocb, iter); err = PTR_ERR_OR_ZERO(pages[0]); if (!IS_ERR_OR_NULL(pages[0])) nr_got = 1; @@ -2397,8 +2384,8 @@ static int generic_file_buffered_read_get_pages(struct kiocb *iocb, break; } - page = generic_file_buffered_read_pagenotuptodate(iocb, - filp, iter, page, pg_pos, pg_count); + page = filemap_update_page(iocb, filp, iter, page, + pg_pos, pg_count); if (IS_ERR_OR_NULL(page)) { for (j = i + 1; j < nr_got; j++) put_page(pages[j]); @@ -2474,8 +2461,7 @@ ssize_t generic_file_buffered_read(struct kiocb *iocb, iocb->ki_flags |= IOCB_NOWAIT; i = 0; - pg_nr = generic_file_buffered_read_get_pages(iocb, iter, - pages, nr_pages); + pg_nr = filemap_get_pages(iocb, iter, pages, nr_pages); if (pg_nr < 0) { error = pg_nr; break;
The recent split of generic_file_buffered_read() created some very long function names which are hard to distinguish from each other. Rename as follows: generic_file_buffered_read_readpage -> filemap_read_page generic_file_buffered_read_pagenotuptodate -> filemap_update_page generic_file_buffered_read_no_cached_page -> filemap_create_page generic_file_buffered_read_get_pages -> filemap_get_pages Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- mm/filemap.c | 44 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 29 deletions(-)