RFC: should lseek(SEEK_DATA/SEEK_HOLE) return ENOTTY?

Rick Macklem rmacklem at uoguelph.ca
Sun Aug 11 02:03:14 UTC 2019


Hi,

I've noticed that, if you do a lseek(SEEK_DATA/SEEK_HOLE) on a file that
resides in a file system that does not support holes, ENOTTY is returned.

This error isn't listed for lseek() and seems a liitle weird.

I can see a couple of alternatives to this:
1 - Return a different error. Maybe ENXIO?
or
2 - Have lseek() do the trivial implementation when the VOP_IOCTL() fails.
   - For SEEK_DATA, just return the offset given as argument and for SEEK_HOLE
      return the file's size as the offset.

What do others think? rick
ps: The man page should be updated, whatever is done w.r.t. this.



More information about the freebsd-current mailing list