Generation numbers didn't catch all potential yields on output

io_output_if_queue_long() called ef_make_stale() only for long queues.
Missed in commit 2fa5f652, v4.3.24.
This commit is contained in:
Markus Armbruster 2010-02-21 18:44:16 +01:00
parent 2b4e97730d
commit a38c47a22c

View file

@ -250,8 +250,11 @@ io_output_if_queue_long(struct iop *iop, int wait)
if (CANT_HAPPEN(iop->last_out > len))
iop->last_out = 0;
if (len - iop->last_out < iop->bufsize)
if (len - iop->last_out < iop->bufsize) {
if (wait)
ef_make_stale();
return 0;
}
return io_output(iop, wait);
}