Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: st.c update has broken dump multi-tape support
On Thu, Jun 10, 2021 at 11:10:23AM +0200, Frank Kardel wrote:
> Hi Brett,
>
> I meant the section in ststart1 where error is set to zero followed by goto
> out inf the fixed blocksize part.
The biodone is missing, but also other parts.
We have 5 cases.
- I/O request is queued, error == 0. -> will be finished in callback.
- I/O request is queued, error != 0. -> ststart calls biodone.
- I/O request is not queued, error == EAGAIN -> ststart requeues request
- I/O request is not queued, error != 0 -> ststart calls biodone.
and
- I/O request is not queued, error == 0 -> this is broken.
I would make the last case return error == -1 instead (!= any possible
errno value). In ststart errno is checked != 0, so it will
- finish the I/O request for iostat.
- call biodone
The latter needs an adjustment like:
bp->b_error = error < 0 ? 0 : error;
so that the fake errno is replaced with end-of-file.
If you don't like the fake errno, the function needs to return
two values, the error value and a boolean to finish the
unqueued request. Cleaner, but more changes.
Greetings,
--
Michael van Elst
Internet: mlelstv%serpens.de@localhost
"A potential Snark may lurk in every tree."
Home |
Main Index |
Thread Index |
Old Index