func (r *reader) Read(p []byte) (n int, err error) {
    err = r.s.emulateError(ModeRead, r.fd.Type)
    if err == nil {
        r.s.stall(ModeRead, r.fd.Type)
        n, err = r.Reader.Read(p)