Re: [PATCH RFC 00/11] mm/filemap: split out folio wait and VFS code
Tal Zussman <[email protected]>
| Newsgroups | org.kernel.vger.io-uring,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 5/28/26 8:49 AM, Christoph Hellwig wrote: > On Thu, May 28, 2026 at 11:22:37AM +0200, Jan Kara wrote: >> Overall this makes sense to me. In particular I agree it makes sense to >> move the file read/write helpers into fs. > > I disagree very strongly. Mixing default implementations with the > higher level APIs is a really bad idea and leads to people taking > stupid shortcuts and other layering violations. fs/read_write.c already contains some of these "generic" function implementations, including generic_write_checks(), which is called by generic_file_write_iter() in mm/filemap.c. Right now the two files are unnecessarily interdependent. I do think fs/read_write.c is the natural home for these functions. > Splitting up filemap.c makes sense, but I'd rather keep the generic copy > into and out of the pagecache code with the MM infrastructure for it, > as it is not VFS code, and making that clear to anyone touching the code > is important. About half the code moved is implementing direct I/O or multiplexing between page cache I/O and direct I/O. It definitely shouldn't be in the page cache, and I do think it is VFS code. The one exception I see is generic_perform_write(), which is analogous to filemap_read() and should stay in filemap.c (and probably be renamed to something like filemap_write()).