let read_block n buffer offset = if not !alive then system_error EIO "read_block: not alive" F.name; assert (String.length buffer - offset >= block_size); try lseek_block n; really_read disk buffer offset block_size with Unix_error (_,_,_) | End_of_file -> system_error EIO "readblock: Unix_error" F.name |