diff --git a/include/haproxy/stconn.h b/include/haproxy/stconn.h index 9b5502a7d..afab784ca 100644 --- a/include/haproxy/stconn.h +++ b/include/haproxy/stconn.h @@ -511,13 +511,9 @@ static inline size_t se_nego_ff(struct sedesc *se, struct buffer *input, size_t se->iobuf.flags &= ~IOBUF_FL_FF_BLOCKED; if (mux->nego_fastfwd && mux->done_fastfwd) { - /* Declare SE as blocked if EOS or an error was reported. - * This may happen if fast-forward was scheduled before the I/O processing on . - * Wake up in this case. - */ + /* Disable zero-copy forwarding if EOS or an error was reported. */ if (se_fl_test(se, SE_FL_EOS|SE_FL_ERROR|SE_FL_ERR_PENDING)) { - se->iobuf.flags |= IOBUF_FL_FF_BLOCKED; - tasklet_wakeup(se->sc->wait_event.tasklet); + se->iobuf.flags |= IOBUF_FL_NO_FF; goto end; }