On Tue, Oct 27, 2020 at 06:58:09PM +0000, Christoph Hellwig wrote: > > +/** > > + * mapping_seek_hole_data - Seek for SEEK_DATA / SEEK_HOLE in the page cache. > > + * @mapping: Address space to search. > > + * @start: First byte to consider. > > + * @end: Limit of search (exclusive). > > + * @whence: Either SEEK_HOLE or SEEK_DATA. > > + * > > + * If the page cache knows which blocks contain holes and which blocks > > + * contain data, your filesystem can use this function to implement > > + * SEEK_HOLE and SEEK_DATA. This is useful for filesystems which are > > + * entirely memory-based such as tmpfs, and filesystems which support > > + * unwritten extents. > > + * > > + * Return: The requested offset on successs, or -ENXIO if @whence specifies > > + * SEEK_DATA and there is no data after @start. There is an implicit hole > > + * after @end - 1, so SEEK_HOLE returns @end if all the bytes between @start > > + * and @end contain data. > > + */ > > This seems to just lift the tmpfs one to common code. If it really > is supposed to be generic it should be able to replace > page_cache_seek_hole_data as well. So I don't think moving this without > removing the other common one is an all that good idea. I have that patch here: http://git.infradead.org/users/willy/pagecache.git/commitdiff/a4e435b5ed14a0b898da6e5a66fe232f467b8ba1 I was going to let this patch go upstream through Andrew's tree, then submit that one through Darrick's tree. But I can add that patch to the next submission of this series if you'd rather.