On 30/10/2021 03:04, Paul Eggert wrote:
On 10/28/21 13:59, Pádraig Brady wrote:

I wonder after getting a SEEK_DATA ENXIO, might we correlate
we really are at end of file by checking SEEK_HOLE also returns ENXIO?

Wouldn't SEEK_HOLE return the current offset, instead of ENXIO? That is,
if the underlying data structure is wrong and claims that the rest of
the file is a hole, wouldn't SEEK_HOLE merely repeat that information?

What I was thinking is that SEEK_DATA returning ENXIO suggests end of file.
If we're not actually at EOF a SEEK_HOLE at SEEK_CUR+1 might not indicate ENXIO.
I which case we could do a fdatasync().
All wild speculation though depending on the ZFS bug.
If the bug is fixed and we have a good reproducer, we might
be able to do something like this to cater for existing buggy ZFS installations.

cheers,
Pádraig



Reply via email to