0ff2145648
used in the event that we can't malloc a buffer of the appropriate size in the traditional way. rf_AllocIOBuffer() and rf_FreeIOBuffer() deal with allocating/freeing these structures. These buffers are stored in a list on the 'iobuf' list. iobuf_count keeps track of how many buffers are available, and numEmergencyBuffers is the effective "high-water" mark for the freelist. The buffers allocated by rf_AllocIOBuffer() are stripe-unit sized, which is the maximum size requested by any of the callers. Add an iobufs entry to RF_DagHeader_s. Use it for keeping track of buffers that get allocated from the free-list. Add a "generic list" pool (VoidPointerListElement Pool) for elements used to maintain a list of allocated memory. [It is somewhat less than ideal to add another little pool to handle this...] Teach rf_AllocBuffer() to use the new rf_AllocIOBuffer(). Modify other Mallocs to use rf_AllocIOBuffer(), and to update dag_h->iobufs as appropriate. Update rf_FreeDAG() to handle cleanup of dag_h->iobufs. While here, add some missing pool_destroy() calls for a number of pools. With these changes, it should (in theory) be possible to swap on RAID 5 sets again. That said, I've not had any success there yet -- but the last issue I saw at least wasn't in RAIDframe. :-} [There is room for this code to become a bit more consise, but I wanted to do a checkpoint here with something known to work :) ] |
||
---|---|---|
.. | ||
acpi | ||
apm | ||
arcbios | ||
ata | ||
bi | ||
bluetooth | ||
cardbus | ||
dec | ||
dmover | ||
ebus | ||
eisa | ||
gpib | ||
hpc | ||
i2c | ||
i2o | ||
ic | ||
ieee1394 | ||
ir | ||
isa | ||
isapnp | ||
marvell | ||
mca | ||
microcode | ||
mii | ||
mscp | ||
mvme | ||
news | ||
ofisa | ||
ofw | ||
pci | ||
pckbport | ||
pcmcia | ||
podulebus | ||
ppbus | ||
qbus | ||
raidframe | ||
rasops | ||
rcons | ||
sbus | ||
scsipi | ||
smbus | ||
std | ||
sun | ||
sysmon | ||
tc | ||
usb | ||
vinum | ||
vme | ||
wscons | ||
wsfont | ||
xmi | ||
auconv.c | ||
auconv.h | ||
audio_if.h | ||
audio.c | ||
audiobell.c | ||
audiobellvar.h | ||
audiovar.h | ||
aurateconv.c | ||
ccd.c | ||
ccdvar.h | ||
cgd_crypto.c | ||
cgd_crypto.h | ||
cgd.c | ||
cgdvar.h | ||
clock_subr.c | ||
clock_subr.h | ||
clockctl.c | ||
cninit.c | ||
cons.c | ||
cons.h | ||
DEVNAMES | ||
dksubr.c | ||
dkvar.h | ||
fss.c | ||
fssvar.h | ||
kttcp.c | ||
kttcpio.h | ||
ld.c | ||
ldvar.h | ||
Makefile | ||
md_root.c | ||
md.c | ||
md.h | ||
midi_if.h | ||
midi.c | ||
midisyn.c | ||
midisynvar.h | ||
midivar.h | ||
mm.c | ||
mulaw.c | ||
mulaw.h | ||
nullcons_subr.c | ||
radio_if.h | ||
radio.c | ||
radiovar.h | ||
rnd.c | ||
rndpool.c | ||
sequencer.c | ||
sequencervar.h | ||
verified_exec.c | ||
vnd.c | ||
vndvar.h |