Re: [RFC] iomap: fix race between readahead and direct write

From: yukuai (C)
Date: Sat Jan 18 2020 - 20:34:46 EST




On 2020/1/19 7:08, Matthew Wilcox wrote:
It's worth noting that my patch series from earlier this week to
redesign the readahead API will fix this problem. Direct write will block
on the locked pages in the page cache.

Thank you for your response!

In this case, direct write finish while page do not exist in the page
cache. This is the fundamental condition of the race, because readahead
won't allocate page if page exist in page cache.

By the way, in the current logic, if page exist in page cache, direct
write need to hold lock for page in invalidate_inode_pages2_range().

Thanks!
Yu Kuai