Hi Allison,
Currently, punch hole flushes all pages to disk and releases pages in
page cache, and then calls ext4_ext_map_blocks.
Assume that if a new page in the punching's range is mapped after
releasing pages and before down_write i_data_sem,
then ext4_ext_map_blocks will release map info of the page in extent
tree. However, up layers does not know this, and they think the page
is mapped.
I can not find how punch hole handle the situation above. Could you
shed a light on it?
--
Best Wishes
Yongqiang Yang