summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum/vinumioctl.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused vinum files.phk2004-11-041-960/+0
|
* Update for the KDB framework:marcel2004-07-101-1/+1
| | | | o Call kdb_enter() instead of Debugger().
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-2/+2
| | | | Bump __FreeBSD_version accordingly.
* Use __FBSDID().obrien2003-08-241-1/+3
| | | | Also some minor style cleanups.
* Remove VINUM_LABEL ioctl. It has been deprecated since December 1998,grog2003-06-121-6/+1
| | | | | | and recent changes broke it altogether. Prompted by: phk
* detachobject: Update volume config after detaching a plex.grog2003-05-231-3/+5
| | | | | | update_volume_config: Remove redundant diskconfig parameter. Approved by: re (jhb)
* ioctl VINUM_READCONFIG: Don't lock configuration here. vinum_scandiskgrog2003-05-081-5/+1
| | | | | | | needs to do it anyway to handle the startup case. This is part of a fix for the recently reported hangs. Approved by: re (scottl)
* Implement DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls. It appears thatgrog2003-05-051-0/+24
| | | | they are now necessary to use newfs(8).
* Remove DIOCGDINFO ioctl. This almost makes newfs work again withoutgrog2003-05-051-14/+41
| | | | | | | | | | the -v option, though it's not clear that it won't bite us elsewhere. Forgotten by: phk Implement setreadpol() function for the VINUM_READPOL ioctl. Submitted by: Allan Saddi <allan@saddi.com>
* Rewrite of startup code:grog2003-05-041-0/+18
| | | | | | Add ioctl VINUM_READCONFIG which implements both the "read" and "start" commands in vinum(8). Aim for marginally better error messages when something goes wrong.
* Rewrite minor number decoding. Now we have only three types ofgrog2003-05-011-325/+329
| | | | | | | | | | | | | object: subdisks, plexes and volumes. The encoding for plexes and subdisks no longer reflects the object to which they belong. The super devices are high-order volume numbers. This gives vastly more potential volumes (4 million instead of 256). As a result of the minor number changes, split out the superdevice handling into a separate function, vinum_super_ioctl. This was most of the code of vinumioctl. attachobject: Improve error checking.
* NO_GEOM cleanup: unifdef -UNO_GEOMphk2003-02-221-10/+0
|
* Put use of DIOCWLABEL under #ifdef NO_GEOMphk2003-01-261-1/+2
|
* Back out revision 1.38. disklabel now understands vinum volumes again.grog2002-12-181-5/+1
|
* Implement DIOCGDINFO for volumes. newfs will no longer build a filegrog2002-12-021-0/+4
| | | | | | system on a volume without a disk label. Approved by: re (rwatson)
* Retire now unused DIOCGDVIRGIN kludge.phk2002-09-201-3/+0
| | | | Sponsored by: DARPA & NAI Labs.
* Implement the DIOCGSECTORSIZE and DIOCGMEDIASIZE ioctls, and renamejoerg2002-08-141-1/+9
| | | | | | | the DIOCGDINFO ioctl into DIOCGDVIRGIN. This allows the newfs(8) to work on vinum volumes without the now removed -v option. Approved by: grog
* Fix new compiler unhappiness.peter2002-05-241-0/+1
|
* Retire the bogus ioctl DIOCGPART in toto.phk2002-04-021-11/+0
| | | | | | | Once again we can notice that badly thought out hacks ferment and infect far more code than initially expected. Sponsored by: DARPA and NAI Labs.
* vinumioctl: Fix a double fault caused by calling setjmp() without holding ↵grog2002-01-271-3/+0
| | | | the config lock. The call was in fact superfluous.
* attachobject: Return correct status after successfully attaching agrog2001-10-131-0/+1
| | | | | | plex. Indirectly found by: Hendrik Scholz <hscholz@perikles.toppoint.de>
* KSE Milestone 2julian2001-09-121-3/+3
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Change ioctls to use the expurgated userland version of the Vinumgrog2001-05-221-8/+8
| | | | structures.
* Rename detached plexes and subdisks correctly (off by one error)grog2000-12-201-6/+16
| | | | Submitted by: Terry Glanfield <Terry.Glanfield@program-products.co.uk>
* Remove a redundant statement.grog2000-06-021-2/+1
|
* Change linkage to parity maintenance operations.grog2000-05-111-7/+3
|
* Modify comments to indicate that RAID-5 functions also apply togrog2000-02-291-6/+4
| | | | | | RAID-4. Approved-by: jkh
* Add function moveobject, which currently moves subdisks to differentgrog2000-01-051-0/+44
| | | | | | | | | | | drives. This function just does the low-level configuration changes; the resultant subdisk is stale if it previously had any contents, otherwise it is empty (i.e. in need of initializing if it's RAID-5). We still need to handle getting the contents moved over, but the current version will suffice to migrate subdisks from a disk which has failed. Submitted-by: Marius Bendiksen <marius@marius.scancall.no>
* Remove reference to obsolete initsd function.grog1999-10-131-3/+1
| | | | | | This should have been committed yesterday. Broke-world-for: USW2 Root <root@usw2.freebsd.org>
* Add ioctls VINUM_CHECKPARITY and VINUM_RESETPARITY, still to be fullygrog1999-09-281-0/+8
| | | | implemented.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Add VINUM_SETSTATE_FORCE ioctl for diddling individual object states.grog1999-08-241-6/+14
| | | | | This is a repair tool which can also be used for panicing the system. Use with utmost care if at all.
* vinumioctl: add ioctls for raw subdisks and plexes. Remove code forgrog1999-08-141-10/+57
| | | | drives (we refuse to touch drives, that's the disk driver's business).
* Import RAID-5 code.grog1999-08-071-6/+18
| | | | | | | | | | | | | | Add Cybernet copyright. OK'd-by: Chuck Jacobus <chuck@cybernet.com> detchobject: Don't update the object configuration. replaceobject: Add preliminary code. This is not yet complete. vinumw.h vinumparser.c: Add keyword 'hotspare'.
* Be more intelligent about attaching subdisks to plexes.grog1999-06-221-5/+13
|
* Modify to work with new style dev_t.grog1999-05-151-3/+1
| | | | | With_copious_input_from: peter phk
* Make Vinum compile correctly without VINUMDEBUGgrog1999-05-081-0/+2
| | | | Tripped-over-by: Thomas Stromberg <tstromberg@rtci.com>
* Remove old grunge, including references to sys/disk.h (which is goinggrog1999-05-071-4/+1
| | | | | | away). Submitted-by: phk
* Revise use of the vinum_conf variables drives_used, subdisks_used,grog1999-03-301-33/+33
| | | | | | | | | | | | plexes_used and volumes_used. Now these fields are only informative, and the <object>_allocated count is used for searches, etc. This also required checking the object state before doing things with the presumed object. Problems-reported-by: Kiril Mitev <kiril@ideaglobal.com> VINUM_<object>CONFIG: return ENXIO rather than EFAULT if an object doesn't exist.
* Remove longjmp declaration.grog1999-03-281-7/+1
|
* VINUM_STARTCONFIG:grog1999-03-231-1/+1
| | | | | Pass the 'data' parameter to start_config, which uses it as the parameter 'force.
* VINUM_RESETCONFIG: do the reset even if the config is open (as it hasgrog1999-03-131-3/+1
| | | | | to be for us to issue the ioctl :-). Also remove the opencount parameter of the config, which just never worked.
* Change printf() calls to log() calls.grog1999-03-021-17/+28
| | | | | | | Change VINUM_SAVECONFIG: it now requires a parameter. 0 means "configuration updates are finished, please save", and 1 means "please just save the config". This second meaning is invoked by the new "saveconfig" command to vinum(8).
* Change multiline comments to start with a lone /* and end with a */,grog1999-01-291-16/+29
| | | | | | apparently in accordance with style(9). Complained-about-by: bde
* Correct #include in vinumioctl.c to compile correctlygrog1999-01-241-2/+2
| | | | | | without VINUMDEBUG Submitted-by: peter
* Include Peter Wemm's renaming and restructuringgrog1999-01-211-68/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove #ifdefs for FreeBSD 2.c Change from lkm to kld correct type of `flags' in calls to set_drive_state. set_drive_parms: handle anonymous drives correctly (remove them) drive VOP functions: use the PID of the original opener to fool the lock manager. open_drive: be quiet about failures (they're normal when scanning the partitions). close_drive: lock drive before closing. remove_drive: lock drive before deallocating. read_drive_label: set drive up when all is OK check_drive: Complete rewrite. Offload most of the code to the new vinum_scandisk format_config: use snprintf and %qd options to make much less emetic. Remove old supporting functions. vinum_scandisk: Moved here from vinum.c Almost complete rewrite, incorporating much of what was check_drive. We still don't have a general way to find the drives on a system, so get the user to supply the names via the `read' command. For each device, try each possible compatibility slice name (there's a danger of finding both /dev/da1h and /dev/da0s1h otherwise). Sort the partitions found in reverse order of last update time and read them in, setting the `update' parameter to parse_config and descendents. save_config: rename to daemon_save_config, since the function is now called by the daemon. Create a new function save_config which queues the request with the daemon. daemon_save_config: some mods to allow for the unfamiliar environment.
* Some relatively minor tweaks to enable vinum to be built into a staticpeter1998-12-281-6/+9
| | | | | | | | | | | | | | | | kernel as a pseudo-device. The changes were: - #ifdef DEBUG -> #ifdef VINUMDEBUG - opt_vinum.h for holding above config variable - Fixing up a few stray problems where DEBUG wasn't optional. - config.c -> vinumconfig.c (there's already a config.o) - Other *.c -> vinum*.c (wasn't strictly necessary, but done in case we end up with something else conflicting later on and we might have to have yet more repository copies of files). - include file paths fixups.. (ie: get them all from the kernel tree instead of partly from the kernel and partly from /usr/include/machine) I've spoken with Greg about this.. I hope this doesn't mess him around too much..
* If I've done this right, revive the vinum code in it's now home after itpeter1998-12-281-0/+795
| | | | was savaged in the blood bath a few hours ago.
* Remove LKM's depricated by modules.sos1998-12-271-795/+0
|
* config.c:grog1998-10-211-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | config_drive: Catch an instance of anonymous drives. Doubtless many remain. interrupt.c: complete_rqe: Call logrq to log iodone events if DEBUG_LASTREQS is set. Call set_sd_state with setstate_noupdate to avoid buffered I/O out of interrupt context. Use define DEBUG_RESID instead of constant. memory.c: Remove dead expandrq() function Malloc: Remove directory component of file names in malloc table. Add function vinum_rqinfo (part of the request tracing stuff). request.c: Add function logrq (part of the request tracing stuff). vinumstrategy: Check whether config needs to be written to disk, do it if so. This is a stopgap until the Vinum daemon (bacchusd? oenologistd?) is written. If DEBUG_LASTREQS is set, call logrq to log user buffer headers. launch_requests: Correct format of debug output to console. If DEBUG_LASTREQS is set, call logrq to log request elements. request.h: Add definitions for request trace. state.c: set_sd_state: Check flags for setstate_noupdate. If set, don't write the config to disk, just set global VF_DIRTYCONFIG flag. This is part of the kludge to avoid writing config from an interrupt context. vinumext.h: Add declaration for vinum_rqinfo, put inside #ifdef DEBUG Remove dead macro expandrq vinumio.h: Increase maximum ioctl reply length to 4 kB if DEBUG is set. Define VINUM_RQINFO ioctl if DEBUG is set. vinumioctl.c: vinumioctl: Change implementation of VINUM_DEBUG ioctl: use a debug flag (DEBUG_REMOTEGDB) to decide whether to go into remote debugging or not. Implement VINUM_RQINFO. vinumkw.h: Define kw_info even when not debugging. vinumvar.h: Define VF_DIRTYCONFIG Add pointers to request info to vinum_info if DEBUG is set. Define setstate_noupdate Define additional debug bits DEBUG_RESID, DEBUG_LASTREQS and DEBUG_REMOTEGDB.
OpenPOWER on IntegriCloud