I have noticed that when I call lseek64 on my block device driver file (/dev/mybd), it always fails. (I can open, read and write on /dev/mybd ok).
However, if I can lseek64 with the same argument on /dev/sdb, which is an sata disk, it always succeed.
Does lseek requires any block device support? Or is it a pure kernel function?
Looking at the code, the default seek for block devices is in
fs/block_dev.c:No call to the specific block device. The only particular call is to
i_size_read, that just does some SMP magic.