I don't think we can solve this properly. Due to the racyness we can always err one side. The beauty of treating all the uptodate pages as present data is that we err on the safe side, as applications expect holes to never have data, while "data" could always be zeroed.