Implement readFully(long position, byte buffer, int offset, int length) in PrefetchingInputStream, as it currently uses FSInputStream's readFully which calls read(long position, byte buffer, int offset, int length).
This read then seeks to the position (which is ok), but then seeks back to the original starting position at the end (so always seeking back to 0). this is pretty bad for the prefetching implementation as it means lots of caching to disk and getting blocks from disk.
when backporting. follow with