summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
2006-08-28Fix uninitialized variables.christos
2006-08-27- use dk_lookup instead of our home-spun version.christos
- allow raid to be configured in a wedge - allow wedges to be configured in a raid - add autoconfiguration of wedges in a raid
2006-08-17Fix all the -D*DEBUG* code that it was rotting away and did not even compile.christos
Mostly from Arnaud Lacombe, many thanks!
2006-08-07sc_size should be a 64-bit quantity. Notice by Matthias Drochner.oster
2006-08-07Fix a minor typo in a comment.oster
2006-07-21- Use the LWP cached credentials where sane.ad
- Minor cosmetic changes.
2006-06-12Do the "don't allocate > 1K on the stack" thing for raidioctl().oster
2006-06-07merge FreeBSD timecounters from branch simonb-timecounterskardel
- struct timeval time is gone time.tv_sec -> time_second - struct timeval mono_time is gone mono_time.tv_sec -> time_uptime - access to time via {get,}{micro,nano,bin}time() get* versions are fast but less precise - support NTP nanokernel implementation (NTP API 4) - further reading: Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
2006-05-14integrate kauth.elad
2006-04-26un-bitrot some of this code (which is not included by default in kernels),oster
and make it build again. XXX: Paritylogging bits still won't build.
2006-04-14Coverity CID 1127: Prevent NULL deref.christos
2006-04-14Turn on RAID KASSERTS if __COVERITY__christos
2006-04-12Don't access b_fspriv.bf_private in struct buf directly - use thesimonb
b_private macro. OK'd by oster@
2006-03-28Use device_is_a() and device_unit().thorpej
2006-03-25free storage of clabel before bailing out.rtr
coverity 2745 / run 11
2006-03-23This one is good for making one's brain hurt. Turns out that theoster
original RAIDframe code had the same bug with dag_h being used when possibly NULL. Use dagList as the starting point for any potential dag_h's. Move the initialization of dag_h in this part to a little later. Loop now runs through in equivalent lock-step with the construction of the dagList earlier in the function. Addresses Coverity CID 1129 (id=6841 Run 5).
2006-03-19Use tabs instead of spaces with previous change.simonb
2006-03-19Fix memory leaks when some components of a raid where missing duringdavid
autoconfig. From Coverity CIDs 2328, 2324, 2323, 1125
2006-03-18dag_h will always be NULL in this case, and thus we can eliminate aoster
bit of dead code. Addresses Coverity CID 728 NetBSD Scan 5.
2006-03-01Fix lossage related to device_is_a() changes. Fix from cube@ (thanks!).oster
Tested by me.
2006-02-24- minor comment cleanuposter
- nuke an extraneous memset() (RF_Malloc() already does that) from RAIDFRAME_GET_INFO in raidioctl().
2006-02-21Use device_class() instead of accessing dv_class directly.thorpej
2006-02-14RAIDframe was erroneously re-initializing the Parity Stripe Statusoster
pool each time a new array was configured. This causes grief with things like 'vmstat -m' by causing it to loop. Make RAIDframe only initialize PSS bits once. Pointed out by simonb@. Fix tested by simonb@. Thanks!
2006-01-09rf_DiskUnlockFunc and rf_DiskUnlockFuncForThreads are never used. Punt them.oster
rf_DiskUnlockUndoFunc is in the same boat. Punt it too.
2006-01-08Really move all of the bp initalization bits into InitBP().oster
2006-01-08For the normal (read/write) case, do all the buffer initializationoster
inside of InitBP().
2006-01-08Cleanup the initialization of buffers a bit, and remove some old codeoster
that works around a bug that no longer exists. From yamt. Thanks! (a bit more cleanup to follow)
2006-01-08raidstrategy: fix weird ENOSPC when reading from/writing to a raw partition.yamt
2006-01-08raidioctl:yamt
- don't ignore raidread_component_label error. - remove an unnessesary memset.
2006-01-07Remove the component buffer bits, now that I know there is aoster
"private" structure in struct buf that can be used to keep track of the request associated with this buffer (the buffer used here is one allocated from rf_CreateDiskQueueData(), so it's ours to do with what we please). Shrinks code a little, reduces the run-time memory footprint a bit, and simplifies both rf_DispatchKernelIO() and KernelWakeupFunc(). Thanks to yamt for his "why is rf_DispatchKernelIO using another buf" question which prompted me to revisit this code.
2006-01-06initialize necessary members of struct buf. PR/32462 from Reinoud Zandijk.yamt
2006-01-04- add simple functions to allocate/free a buffer for i/o.yamt
- make bufpool static.
2006-01-04We need to mark used spares as failed if they encounter IO errors!oster
Commit fixes problem reported (privately) by Jeff Rizzo. XXX: Note that we are still are unable to allow a reconstruct of a failed spare -- it's easy enough to attempt to do it, but the code in rf_ContinueReconstructFailedDisk() isn't anywhere close to ready to allow it. Yet another reason why the whole disk/spare thing needs to be re-worked. *sigh*
2005-12-11merge ktrace-lwp.christos
2005-10-15- change the way to specify a bufq strategy. (by string rather than by number)yamt
- rather than embedding bufq_state in driver softc, have a pointer to the former. - move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c. - rename method to strategy for consistency. - move some definitions which don't need to be exposed to the rest of kernel from sys/bufq.h to sys/bufq_impl.h. (is it better to move it to kern/ or somewhere?) - fix some obvious breakage in dev/qbus/ts.c. (not tested)
2005-09-25Re-work the handling of incoming I/O in RAIDframe:oster
- introduce rf_buf_queue_check() which checks to see if there is work to do in the incoming buffer queue - rf_RaidIOThread() is now responsible for calling raidstart(), and is also now the only place that calls raidstart() - raidstrategy() now just queues requests in buf_queue and signals rf_RaidIOThread() that work has arrived Hopefully addresses PR#30233
2005-09-24This disk_detach() should be pseudo_disk_detach().oster
2005-09-24Remove an RF_ASSERT that is just plain wrong.oster
2005-08-20use pseudo_disk_{init,attach,detach} where appropriate.yamt
2005-07-18If rf_SubmitReconBuffer indicates the submission was blocked (foroster
whatever reason), return 0 instead of the default RF_RECON_READ_STOPPED. Returning RF_RECON_READ_STOPPED would result in rf_ContinueReconstructFailedDisk() thinking that the given component was "done" and breaking out of the main reconstruction loop far too early. Reconstruction still worked correctly as long as there were no errors, but RAIDframe wouldn't be in a position to properly handle read/write errors during reconstruction. This fixes the "raidctl's progress bar spins at 0% until reconstruction finishes" problem.
2005-06-08- initialize numRUsTotal before we indicate that we are doing a reconstruct.oster
- make numRUsComplete and numRUsTotal 64-bit quantities like everything else that records this information.
2005-05-29- avoid variable shadowingchristos
- add a lot of const - remove parameters from functin declarations
2005-02-27nuke trailing whitespaceperry
2005-02-13Convert a few "void *"'s to "struct buf *"'s. No functional changes.oster
2005-02-12The 'next' argument to rf_CreateDiskQueueData is always NULL. Sinceoster
there is no particular reason to pass an extra NULL argument, turf it, and initialize p->next to NULL within the function.
2005-02-12Add a 'waitflag' argument to rf_CreateDiskQueueData() and use it tooster
determine if we are willing to wait for memory to come from the diskqueuedata (dqd) and bufpool pools. Cleanup the mess related to code calling rf_CreateDiskQueueData() with different expectations (and/or blatent disregard) of what might happen if there were insufficient pool resources.
2005-02-06It's not a bad idea to update the component labels whether or not theoster
reconstruction was successful.
2005-02-05CreateDiskQueueData() doesn't need to use void * for raidPtr.oster
RF_Raid_t is well known in RF, and there's no reason not to use it here.
2005-02-05rf_GetNextReconEvent() *will* return a valid event, so no need foroster
the assert. (we'd have panic'ed in there long before this assert if that wasn't the case). Minor whitespace changes.
2005-02-05Cleanup function prototypes.oster