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 commit2fa5f652
, v4.3.24. (cherry picked from commita38c47a22c
)
This commit is contained in:
parent
065881143e
commit
069fb10409
1 changed files with 4 additions and 1 deletions
|
@ -250,8 +250,11 @@ io_output_if_queue_long(struct iop *iop, int wait)
|
||||||
|
|
||||||
if (CANT_HAPPEN(iop->last_out > len))
|
if (CANT_HAPPEN(iop->last_out > len))
|
||||||
iop->last_out = 0;
|
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 0;
|
||||||
|
}
|
||||||
return io_output(iop, wait);
|
return io_output(iop, wait);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue