On Sun, Jan 23, 2022 at 11:52:07PM -0800, John Hubbard wrote: > To ground this in reality, one of the partial call stacks is: > > do_direct_IO() > dio_zero_block() > page = ZERO_PAGE(0); <-- This is a problem > > I'm not sure what to use, instead of that zero page! The zero page > doesn't need to be allocated nor tracked, and so any replacement > approaches would need either other storage, or some horrid scheme that I > won't go so far as to write on the screen. :) I'm not really sure what the problem is. include/linux/mm.h: is_zero_pfn(page_to_pfn(page)); and release_pages() already contains: if (is_huge_zero_page(page)) continue; Why can't the BIO release function contain an is_zero_pfn() check?