'Return the Block instance that contains the given offset'

def _get_block(self, pos):

    cached_block = self._block_cache.find_block(pos)
    if cached_block:
        return cached_block
    new_blocks = self.fs._get_blocks(self.path, pos, ((500 * 1024) * 1024))
    self._block_cache.insert_new_blocks(new_blocks)
    result = self._block_cache.find_block(pos)
    if (not result):
        raise IOError(('No    block    for    position    %d    in    file    %s' % (pos, self.path)))
    return result
