summaryrefslogtreecommitdiff
path: root/sys/dev/raidframe
AgeCommit message (Collapse)Author
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!
2010-03-01When setting up a non-autoconfigured RAID set, fail a component if thejld
attempt to read its label fails. OKed by oster@.
2010-03-01Don't merge a good parity map with random stuff in the event that theoster
first component is missing. (Since the merging just OR's the maps, this isn't that big of a deal, as it will just over-estimate the amount of checking that needs to be done.)
2009-12-01KNF: whitespace.dyoung
2009-11-26include sys/param.h first, as is the conventionpooka
2009-11-26On the ARM platform, sys/param.h needs to be before sys/mutex.h, otherwisekenh
sys/device.h will fail compilation (struct kmutex will not be defined completely).
2009-11-21whitespace policechristos
2009-11-17Finally commit the RAIDframe parity map Summer Of Code project.jld
Drastically reduces the amount of time spent rewriting parity after an unclean shutdown by keeping better track of which regions might have had outstanding writes. Enabled by default; can be disabled on a per-set basis, or tuned, with the new raidctl(8) commands. Discussed on tech-kern@ to a general air of approval; exhortations to commit from mrg@, christos@, and others. Thanks to Google for their sponsorship, oster@ for mentoring the project, assorted developers for trying very hard to break it, and probably more I'm forgetting.
2009-11-05Use deviter(9) instead of accessing alldevs directly. Compile-tested,dyoung
only.
2009-10-13raidframe doesn't need sys/user.h (or at least one would hope so ;)pooka
2009-07-23Move the RAID shutdown to the raid(4) detachment routine, and usedyoung
config_detach(9) to shutdown a RAID. Detach raid(4) units at shutdown. Ok by oster@.
2009-06-10Attempt bailout if config_attach_pseudo() fails. Otherwise, a fewpooka
moments later, we'll take a fatal plunge because sc_dev is null.
2009-06-06Fix my previous commit.haad
2009-06-05Add support for DIOCGDISKINFO to disk like device drivers. Changehaad
partutil.c::getdiskinfo to use it to get disk geometry info. Use DIOCGWEDGEINFO ioctl to get information about partition size, if disk driver doesn't support it use old DIOCGDINFO. This patch adds support for wedge like devices(lvm logical volumes, ZFS zvol partitions) to newfs and other tools. No objections on tech-userlevel@.
2009-05-12struct cfdata * -> cfdata_t, no functional changes intended.cegger
2009-05-02Fix assignment of SUsPerPU and add SUsPerRU assignment. Reported byoster
and fix from Anthony Mallet in PR#41328. Thanks!
2009-05-01Use device_t, cfdata_t, device_private().dyoung
2009-04-03Switch various printfs from %ld and %d to PRIu64, etc. to be more consistentsborrill
about types (for instance uint32_t was being printed with %d).
2009-03-23Rework/simplify the disk queuing code. A bunch of this was stilloster
holdovers from the simulator and would never be seen/used in-kernel.
2009-03-18Ansify function definitions w/o arguments. Generated with sed.cegger
2009-03-15ansify function definitionscegger
2009-03-14ANSIfy another 1261 function definitions.dsl
The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
2009-03-14Change about 4500 of the K&R function definitions to ANSI ones.dsl
There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
2009-03-14'boot -z' bogonsad
2009-02-28Nuke a DIAGNOSTIC check that is no longer useful, even for DIAGNOSTIC.oster
2009-02-28It seems that some SCSI drivers can block while the spinlock on a givenoster
disk queue is being held. Work around this by dropping the lock before bdev_strategy(), and re-grabbing the lock afterwards. This is a temporary measure until I get to gutting this queue locking code. There has been some success with this in addressing PR#39993. This patch is from Antti Kantee. Thanks!
2009-02-11If we see a RF_RECON_WRITE_ERROR event we know a write has finished andoster
we need to account for that. Failure to do so means we can end up waiting forever for writes we think are outstanding, but which have already completed. Addresses the RAIDframe part of PR#40569. Thanks to Matthias Scheler for reporting the issue and verifying the fix.
2009-02-07Nuke #define MAXNSTRIPES which is no longer useful.oster
2009-02-07Be consistent with wd.c and don't complain loudly if the underlyingoster
device doesn't support flushing the cache. Fixes an issue (reported privately) where ST39120A drives are not capable of flushing the cache, and RAIDFrame was incessantly complaining.
2009-01-18add compat50 ioctls.christos
2009-01-13g/c BUFQ_FOO() macros and use bufq_foo() directly.yamt
2009-01-11Implement DIOCCACHESYNC for RAIDframe too.oster
2008-12-20When unconfiguring an array where a reconstruct is in progress, abortoster
the reconstruct and wait for IOs to drain before pulling the plug. Should fix the panic reported by der Mouse on tech-kern.
2008-12-17kill MALLOC and FREE macros.cegger
2008-11-18_KERNEL_OPTad
2008-09-28Undo previous change to an #if 0. The code does belong to theoster
distributed sparing bits, but no-one has compile-tested the code. Un-breaks the ALL build.
2008-09-27Cleanup some of the spare table stuff. It is not needed in the generaloster
case, and is only needed for parity declustering with distributed sparing.
2008-09-23Nuke unneeded printf(). Spotted by pooka@.oster
2008-06-17Mark a buffer `busy` in getnewbuf() when it came from the pool_cache sincereinoud
its not on a free list. Also change buf_init() to not automatically mark buffers `busy' since this only makes sense for bufcache buffers. Mark all buf_init'd buffers 'busy' on the places where they ought to be flagged as such to not confuse the buffer cache. Fixes PR 38923.