Actually, should I make it so that the bottom two bits of bi_flags are a four-state variable and make it such that bio_release_page() gives a warning if the state is 0 - ie. unset? The states would then be, say: 0 WARN(), do no cleanup 1 FOLL_GET 2 FOLL_PUT 3 do no cleanup This should help debug any places, such as iomap_dio_zero() that I just found, that add pages with refs without calling iov_iter_extract_pages(). David