The
iodone( )
function completes a block driver's
I/O request
and wakes up all processes waiting completion
of block I/O requests.
Arguments
bp
Pointer to the buffer header
to be freed by
brelse(D3oddi).
Return values
None.
On success,
iodone( )
ORs
B_DONE into b_flags.
Usage
iodone( )
is generally called from a driver's
intr(D2oddi)
or
strategy(D2oddi)
entry point routine.
iodone( )
calls
brelse(D3oddi)
to release the buffer whose address is specified by bp,
followed by
wakeup(D3oddi)
to awaken the sleeping processes.
This routine can be used only with block device drivers.
Context and synchronization
Non-blockable, interrupt, user, or blockable
context.