Re: [PATCH 11/12] fuse: Convert from readpages to readahead

From: Miklos Szeredi
Date: Wed Jan 29 2020 - 05:50:50 EST


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