propagate "EOF" error as io.EOF