- guard against synchronous I/O completion
- avoid race conditions
- use bgetvp/brelvp to properly maintain the vnode holdcount
and clean/dirty buffer lists.
greater flexibility in its use. Additionally, add support for "geometry
emulation". This allows the "geometry" of the "disk" to be specified
at config time, providing near-perfect emulation of disklabel-less floppies,
CD-ROMs, etc., including non-512-byte sectors. If a geometry is not
specified at config time, a default based on 1M cylinders will be used.
if VOP_BMAP() does not produce a translation.
IO_SYNC is used to prevent dirty file cache buffers. On a ffs filesystem,
once a hole is filled, subsequent vnd accesses find will find valid
VOP_BMAP() translations.
Concerns:
* is the assumed semantics correct for all filesystems?
* do we actually want the automagic extension on the VND
backing store..
initiated by vnd_strategy(). This allows for more natural error handling
and solves two bugs:
* vnd can disk_unbusy without disk_busy (PR#2657)
* b_resid is set correctly on the external at the end
of a transfer in case of an error.
detatch everywhere else. Reverted to the english spelling.
Also fixed the rest of the prototype warnings while I was at it.
ic/ncr5380sbc.c: Don't declare Debugger()... I have to clean this
everywhere :-(
- New metrics handling. Metrics are now kept in the new
`struct disk'. Busy time is now stored as a timeval, and
transfer count in bytes.
- Storage for disklabels is now dynamically allocated, so that
the size of the disk structure is not machine-dependent.
- Several new functions for attaching and detaching disks, and
handling metrics calculation.
Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.
For usage and architectural details, see the forthcoming disk(9) manual
page.
* Be a bit better with prototypes
* Use struct dkdevice in vnd_softc.
* Prevent the unit from being unconfigured while open.
* Implement a simple locking mechanism and use it for sanity's
sake.
Still needs more work; needs to support disklabels and the like.