mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
Update a comment in brelse() to match reality.
This commit is contained in:
parent
2b61d29172
commit
cab229b2a6
1 changed files with 12 additions and 3 deletions
|
|
@ -2340,9 +2340,18 @@ brelse(struct buf *bp)
|
|||
!(bp->b_flags & B_INVAL)) {
|
||||
/*
|
||||
* Failed write, redirty. All errors except ENXIO (which
|
||||
* means the device is gone) are expected to be potentially
|
||||
* transient - underlying media might work if tried again
|
||||
* after EIO, and memory might be available after an ENOMEM.
|
||||
* means the device is gone) are treated as being
|
||||
* transient.
|
||||
*
|
||||
* XXX Treating EIO as transient is not correct; the
|
||||
* contract with the local storage device drivers is that
|
||||
* they will only return EIO once the I/O is no longer
|
||||
* retriable. Network I/O also respects this through the
|
||||
* guarantees of TCP and/or the internal retries of NFS.
|
||||
* ENOMEM might be transient, but we also have no way of
|
||||
* knowing when its ok to retry/reschedule. In general,
|
||||
* this entire case should be made obsolete through better
|
||||
* error handling/recovery and resource scheduling.
|
||||
*
|
||||
* Do this also for buffers that failed with ENXIO, but have
|
||||
* non-empty dependencies - the soft updates code might need
|
||||
|
|
|
|||
Loading…
Reference in a new issue