summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
2011-05-28rf_ReconstructInPlace: don't leave a vnode open on errors.yamt
fixes a part of PR/44972.
2011-05-27don't forget to destroy mutex.yamt
2011-05-24Suggested to oster@ and approved via private e-mail as a help tobuhrow
people who are getting reconstruction failures.
2011-05-23rf_panicbuf is already format, so don't pass it as format string tojoerg
panic()
2011-05-11convert the main raidPtr mutex to a kmutex, and add a couple of cv's tomrg
cover the old sleep/wakeup points for adding_hot_spare and waitForReconCond. convert all remaining simple_lock's to kmutexes (they're not used or compiled right now... even with all options enabled) and remove the support for them. this leaves just a pair of tsleep()/wakeup() calls using old scheduling APIs.
2011-05-11convert regionBufferPool.mutex/cond and parityBufferPool.mutex/condmrg
to kmutex/cv.
2011-05-11convert parityLogPool.mutex to a kmutex.mrg
2011-05-11convert regionInfo[regionID].mutex to a kmutex.mrg
2011-05-11convert reintMutex to a kmutex.mrg
2011-05-11convert parityLogDiskQueue.mutex to a kmutex/cv.mrg
XXX: some splbio() usage to clean up here
2011-05-10convert RF_CommonLogData_s/RF_ReconMap_s mutex to a kmutex/cv.mrg
2011-05-10print "raidN: detached" when unconfiguring a raid device.mrg
2011-05-05convert stripelocks to kmutex.mrg
2011-05-05RF_BROADCAST_COND() is no more.mrg
2011-05-05convert access_suspend_mutex to a kmutex/cv.mrg
2011-05-05convert the diskqueue mutex into a kmutexmrg
2011-05-05finish porting mcpair users to kmutex, and fix a couple of declarationsmrg
in rf_netbsdkintf.c. fixes i386/conf/ALL build.
2011-05-03convert the pssTable mutex into a kmutex/cv.mrg
2011-05-02convert rb_mutex to a kmutex/cv.mrg
2011-05-02use a unique wchan identifier for node_queue_cv than the old default.mrg
2011-05-02re-apply the reverted previous, after fixing the missed wakeup:mrg
convert eq_mutex to a kmutex/cv. convert ltsleep() used for plain timeout into kpause().
2011-05-02rever the previous for now; it hangs reconstruction.mrg
2011-05-01convert eq_mutex to a kmutex.mrg
convert ltsleep() used for plain timeout into kpause().
2011-05-01convert rf_debug_mem_mutex to a kmutex, and fix RF_DEBUG_MEM option.mrg
2011-05-01convert rf_tracing_mutex to a kmutex.mrg
2011-05-01convert the (unused) rf_sparet_wait_mutex to a real mutex/cv.mrg
2011-05-01convert mcpair to kmutex.mrg
2011-04-30- convert rf_printf_mutex to a kmutexmrg
- convert rf_rad_lock and the per-raid "cv" to per-raid kmutex/and real cv - use rf_mutex_init() in places, and move it with the similar definitions
2011-04-27prepare to convert more raidframe old lock/sleep APIs to mutex/condvar:mrg
- remove RF_DECLARE_EXTERN_MUTEX and RF_DECLARE_STATIC_MUTEX, the qualifier can be provided at the use point with the normal define - rename the *LGMGR_MUTEX() macros to *mutex2() names, and add some more defines for use: rf_declare_mutex2() rf_declare_cond2() rf_lock_mutex2() rf_unlock_mutex2() rf_init_mutex2() rf_destroy_mutex2() rf_init_cond2() rf_destroy_cond2() rf_wait_cond2() rf_signal_cond2() rf_broadcast_cond2() - use the new names for the configureMutex(), which previous used some combo of direct mutex* calls and macros - convert the node_queue to use a mutex/cv combo - in rf_ShutdownEngine() and DAGExecutionThread(), also signal the former from the latter when it is done and about to exit - convert iodone_lock to use the new macros
2011-04-23move the iodone setup and tear down into rf_engine.c. this fixesmrg
"raidctl -u" and should also help the case where we fail to setup a device part of the way through.
2011-04-23convert the iodone_lock to a mutex, and use a condvar for signalling.mrg
this only handles the smallest use of old simple_lock/tsleep/wakeup APIs inside raidframe, and it points out that cv(9)'s have only one wait channel per cv, whereas each tsleep() caller can specify a different wait channel. this change removes the difference between normal raidio and waiting for IO during shutdown. i've tested this one 3 systems, ran atf, and had mlelstv and rmind review the change.
2011-03-18apply the fix_label hack to partitionSizeHi as well. it's needed there.mrg
to do so, move the call to fix the label inside of rf_reasonable_label() itself, so we can fix the partition sizes before calling rf_component_label_partitionsize() itself. fixes the failure mode where i had garbage not in numBlocksHi but in partitionSizeHi, and the check against rf_component_label_partitionsize() would fail and my raid would not auto-configure.
2011-03-04Remove bogus RF_ASSERT that must have crept in by accident.oster
Thanks to Jan-Hinrich Fessel for reporting the issue.
2011-03-01Always return at least one parity region. Fixes PR#44239.riz
Fix from oster@, code (such as it is) by me.
2011-02-19Define accessors for number of blocks and partition size in theenami
component label and use them where appropriate. Disscussed on tech-kern.
2011-02-13Remove one of trailing whitespace which adds unnecessary differenceenami
against netbsd-5 branch.
2011-02-08Remove clause 3 (UCB advertising clause) from the University of Utahrmind
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks! Also, merge UCB and Utah copyright texts back into one, as they originally were. Extra verification by snj@.
2011-01-07PR/44340: Brian Buhrow: Raid sets containing wedges cannot be unconfiguredchristos
and reconfigured without a reboot.
2010-12-22print the error code for writing parity.christos
2010-12-11add a hack to fix up old labels that do not have zero's in numBlocksHi:mrg
if the total sectors reported (via disklabel or otherwise) is smaller than 2^32, but numBlocksHi is set, zero it out instead. tested by myself and christos, should fix reports of weirdness seen.
2010-12-08PR/44207: Wolfgang.Stukenbrock:christos
memory-leak in raid-ioctl(RAIDFRAME_GET_COMPONENT_LAB
2010-12-04apply my patch to support non-512K sector disks (at least, upto 16KBmrg
sector disks..) from my tech-kern post: the following patch let's me access both 512 byte and 4K sector disks at the same time, as long as they are in separate raids. the existing rf code assumes/enforces this part, i just made it support other sets concurrently. the main change is moving the parity bitmap to the sector after the component label sector(s), instead of being immediately after the label, which meant it was on the same sector as the label for >1024 byte devices. i'm a little annoyed at having to add a 2nd call to getdisksize() to enable auto-configure to work, but i don't see another way that wasn't much uglier.
2010-11-19Introduce struct pathbuf. This is an abstraction to hold a pathnamedholland
and the metadata required to interpret it. Callers of namei must now create a pathbuf and pass it to NDINIT (instead of a string and a uio_seg), then destroy the pathbuf after the namei session is complete. Update all namei call sites accordingly. Add a pathbuf(9) man page and update namei(9). The pathbuf interface also now appears in a couple of related additional places that were passing string/uio_seg pairs that were later fed into NDINIT. Update other call sites accordingly.
2010-11-13Don't pull in the whole uvm(9) API to access only PAGE_SIZE anduebayasi
some other constants. These are provided by sys/param.h now.
2010-11-01add support for >2TB raid devices.mrg
- add two new members to the component label: u_int numBlocksHi u_int partitionSizeHi and store the top 32 bits of the real number of blocks and partition size. modify rf_print_component_label(), rf_does_it_fit(), rf_AutoConfigureDisks() and rf_ReconstructFailedDiskBasic(). - call disk_blocksize() after disk_attach() [ from mlelstv ] - shift the block number relative to DEV_BSHIFT in raidstart() and InitBP() so that accesses work for non 512-byte devices. [ from mlelstv ] - update rf_getdisksize() to use the new getdisksize() [ from mlelstv. this part needs a separate change for netbsd-5. ] reviewed by: oster, christos and darrenr
2010-09-13comment out an unused static functiondrochner
2010-08-08only print the boot-time message if we're being verbose.chs
2010-04-15Fill in param[3] for succedents for bad disk 'i' rather than '0'. ↵oster
Fortunately, nbad is never > 1, so this bug never showed up anywhere. Bug spotted by Jed Davis. Thanks!
2010-03-14For RAID sets which have no parity (i.e., RAID level 0) and therefore canjld
never have a parity map, make the parity map ioctls fail with EINVAL. This makes `raidctl -m` print a scary-looking error on such sets, which is an improvement over the previous behavior of falsely claiming that the parity map would be enabled on the next configuration.
2010-03-03Don't attempt to read or write component label stuff from/to 'dead disks'.oster
Update used spares with the correct parity map bits too. Addresses PR#42904 by Louis Guillaume. Fix confirmed by submitter. Thanks!