On Sat, Jan 25, 2020 at 2:36 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> > > Use the new readahead operation in fuse. Switching away from the > read_cache_pages() helper gets rid of an implicit call to put_page(), > so we can get rid of the get_page() call in fuse_readpages_fill(). > We can also get rid of the call to fuse_wait_on_page_writeback() as > this page is newly allocated and so cannot be under writeback. Not sure. fuse_wait_on_page_writeback() waits not on the page but the byte range indicated by the index. Fuse writeback goes through some hoops to prevent reclaim related deadlocks, which means that the byte range could still be under writeback, yet the page belonging to that range be already reclaimed. This fuse_wait_on_page_writeback() is trying to serialize reads against such writes. Thanks, Miklos