summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum
Commit message (Collapse)AuthorAgeFilesLines
* "Fixed" printf format errors (64-bit daddr_t casualties; should use %jxbde2002-05-251-4/+4
| | | | | | | | | instead of %llx when %j is available). Changed nearby output formats from %x to %#x so that it is obvious that the numbers are in hex (vinum mostly uses 0x%x elsewhere). Didn't fix nearby format printf errors (long lines).
* Fix new compiler unhappiness.peter2002-05-244-1/+4
|
* More s/file system/filesystem/gtrhodes2002-05-163-4/+4
|
* Retire the bogus uses of the disklabel field d_sbsize and begin tophk2002-05-122-2/+1
| | | | | | | initialize it to zero so we don't have to have everbody and their aunt including FFS specific header files. Sponsored by: DARPA & NAI Labs.
* vinum_open: recognize twed device.grog2002-04-261-1/+4
| | | | | | | Submitted by: Holger Kipp <holger.kipp@alogis.com> PR: 37458 MFC after: 5 days (to get 4.6 code freeze)
* Move generic disk ioctls from <sys/disklabel.h> to <sys/disk.h>.phk2002-04-081-0/+1
| | | | Sponsored by: DARPA & NAI Labs
* Change callers of mtx_init() to pass in an appropriate lock type name. Injhb2002-04-041-1/+1
| | | | | | | most cases NULL is passed, but in some cases such as network driver locks (which use the MTX_NETWORK_LOCK macro) and UMA zone locks, a name is used. Tested on: i386, alpha, sparc64
* Retire the bogus ioctl DIOCGPART in toto.phk2002-04-022-12/+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.
* Stop using the bogus DIOCGPART ioctl, use DIOCGSECTORSIZE andphk2002-04-022-7/+19
| | | | | | | DIOCGMEDIASIZE instead. The partition type check has been XXX'ed out since we cannot expect that a BSD disklabel with a type field be available on all platforms.
* Change the suser() API to take advantage of td_ucred as well as do ajhb2002-04-011-1/+1
| | | | | | | | | | | | general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag. Discussed on: smp@
* Remove bogus vinumdump(), if you can't dump, say so with nodump().phk2002-03-292-9/+1
|
* Remove unused include.jeff2002-03-201-1/+0
|
* Introduce the new 64-bit size disk block, daddr64_t. Changemckusick2002-03-154-12/+12
| | | | | | | | | | | | the bio and buffer structures to have daddr64_t bio_pblkno, b_blkno, and b_lblkno fields which allows access to disks larger than a Terabyte in size. This change also requires that the VOP_BMAP vnode operation accept and return daddr64_t blocks. This delta should not affect system operation in any way. It merely sets up the necessary interfaces to allow the development of disk drivers that work with these larger disk block addresses. It also allows for the development of UFS2 which will use 64-bit block addresses.
* GC: BIO_ORDERED going away.phk2002-02-222-2/+2
|
* Grr. The last commit contained update conflicts. It just goes togrog2002-01-291-5/+0
| | | | | | show that you should check the code even for a forced commit. Spotted by: dd
* Forced commit. The previous commit log was garbled and didn't evengrog2002-01-291-0/+5
| | | | | | | | | apply to this file. The correct message is: throw_rude_remark: Make sure we're holding the config lock before proceeding. There's no reason to assume that this has ever happened, but the alternative might be a double fault.
* vinumioctl: Fix a double fault caused by calling setjmp() without holding ↵grog2002-01-272-3/+2
| | | | the config lock. The call was in fact superfluous.
* Don't call cdevsw_{add,remove}().phk2001-11-041-3/+0
|
* allocrqg: Don't ever try to write to a NULL pointer.grog2001-11-031-1/+1
| | | | Reported by: Jeff Roberson <jeff@midstream.com>
* attachobject: Return correct status after successfully attaching agrog2001-10-131-0/+1
| | | | | | plex. Indirectly found by: Hendrik Scholz <hscholz@perikles.toppoint.de>
* Add missing includes of sys/lock.h.jhb2001-10-111-0/+1
|
* KSE Milestone 2julian2001-09-125-16/+16
| | | | | | | | | | | | | | 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
* Remove an accidentally forgotten #ifdef. This could cause depletiongrog2001-09-041-2/+0
| | | | of mutexes if a lot of plexes are created and destroyed.
* open_device: Recognize ar device.grog2001-08-011-0/+2
| | | | Submitted by: Valery Kotchiev <valery@rudiment.dk>
* The kernel *does* now define setjmp/longjmp. Dont duplicate it here.peter2001-07-272-4/+0
| | | | | | | | | In file included from ../../../dev/vinum/vinumhdr.h:77, from ../../../dev/vinum/vinum.c:44: ../../../dev/vinum/vinumext.h:165: warning: redundant redeclaration of `setjmp' in same scope ../../../sys/systm.h:96: warning: previous declaration of `setjmp' ../../../dev/vinum/vinummemory.c:44: warning: redundant redeclaration of `longjmp' in same scope ../../../sys/systm.h:97: warning: previous declaration of `longjmp'
* Fix warnings:peter2001-06-151-1/+0
| | | | | | | | | vinumhdr.h:80: warning: redundant redeclaration of `vinum_cdevsw' vinumext.h:239: warning: previous declaration of `vinum_cdevsw' in each of the following files: vinum.c, vinumconfig.c, vinumdaemon.c, vinuminterrupt.c, vinumio.c, vinumioctl.c, vinumlock.c, vinummemory.c, vinumraid5.c, vinumrequest.c, vinumrevive.c, vinumstate.c, vinumutil.c
* Change #if VINUMDEBUG to #ifdef VINUMDEBUG. This is a flag, not a variable.grog2001-05-238-31/+27
|
* Move objflags from vinumvar.h to vinumobj.h in preparation forgrog2001-05-231-45/+1
| | | | | | | requiring fewer header files for userland programs. Remove the gross debug device/non-debug device hack used to recognize whether the kernel module was in sync with the userland module.
* Move objflags from vinumvar.h to vinumobj.h in preparation forgrog2001-05-231-2/+37
| | | | requiring fewer header files for userland programs.
* Move external declaration to vinumhdr.h.grog2001-05-231-1/+2
|
* Set flag VF_HASDEBUG in vinum_conf to indicate that the module wasgrog2001-05-231-10/+6
| | | | | | | | | | | | compiled with debug support. This can be used by userland programs to recognize which ioctls the module supports. As a result, remove the gross debug device/non-debug device hack used to recognize whether the kernel module was in sync with the userland module. Replace explicit references to major/minor numbers of vinum superdevice with the VINUM_SUPERDEV macro written for that purpose.
* New header file.grog2001-05-221-0/+54
| | | | | | Missed by: Szilveszter Adam <sziszi@petra.hos.u-szeged.hu> David Wolfskill <david@catwhisker.org> Pointy hat to: grog
* Remove Malloc definitions (now in vinumext.h)grog2001-05-221-21/+2
|
* Add a field 'version' to vinum_conf. This field is a constant whichgrog2001-05-221-191/+30
| | | | | | | | | | | | | gets incremented every time the kernel-userland interface changes. This enables vinum(8) to check for the correct kernel version and to produce a useful message if it doesn't match. Requested by: Too many to count. Move the definitions of struct drive, sd, plex and volume to vinumobj.h. Add a new debug flag, DEBUG_LOCKREQS, which logs only lock requests.
* vinumstart: If a write request is for a RAID-[45] plex or a volumegrog2001-05-221-13/+23
| | | | | | | | | | | | | | | | | with more than one plex, the data will be accessed multiple times. During this time, userland code could potentially modify the buffer, thus causing data corruption. In the case of a multi-plexed volume this might be cosmetic, but in the case of a RAID-[45] plex it can cause severe data corruption which only becomes evident after a drive failure. Avoid this situation by making a copy of the data buffer before using it. Note that this solution does not guarantee any particular content of the buffer, just that it remains unchanged for the duration of the request. Suggested by: alfred
* tokenize: Take third parameter specifying the maximum number ofgrog2001-05-221-6/+8
| | | | | parameters to return. This code is used both in userland and in the kernel.
* Cosmetics: wrap long lines to be < 80 characters.grog2001-05-221-2/+4
|
* Add a new debug flag, DEBUG_LOCKREQS, which logs only lock requests.grog2001-05-221-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | Use this instead of DEBUG_LASTREQS to decide whether to log lock requests. MFS: vinumlock: Catch a potential race condition where one process is waiting for a lock, and between the time it is woken and it retries the lock, another process gets it and places it in the first entry in the table. This problem has not been observed, but it's possible, and it's easy enough to fix. Submitted by: tegge vinumunlock: Catch a real bug capable of hanging a system. When releasing a lock, vinumunlock() called wakeup_one. This caused wakeups to sometimes get lost. After due consideration, we think that this is due to the fact that you can't guarantee that some other process is also waiting on the same address. This makes wakeup_one a very dangerous function to use.
* Change ioctls to use the expurgated userland version of the Vinumgrog2001-05-223-20/+22
| | | | structures.
* format_config: Replace long format lines.grog2001-05-221-18/+28
| | | | | | | | | | | | | | Requested by: bde Add retryerrors keyword. vinum_scandisk: Print a different message if an inadvertent start command did not find any additional drives. The previous message "no drives found" confused and worried many people. MFS: vinum_open: Recognize Mylex devices as storage devices.
* complete_rqe:grog2001-05-221-7/+41
| | | | | | | | | | | | In case of error, check the VF_RETRYERRORS flag in the subdisk and don't take the subdisk down if it's set, just retry the I/O. Requested by: peter If the buffer has been copied (XFR_COPYBUF), release the copied buffer when the I/O completes. Suggested by: alfred
* Remove unnecessary declarations of userland functions.grog2001-05-221-13/+25
| | | | | | | | | Desired by: bde This commit is the first of a general cleanup of the header files.. It won't be enough to make bde happy. Move debug definitions from vinumhdr.h.
* config_sd: Add code to recognize "retryerrors" keyword.grog2001-05-221-29/+48
| | | | | | | | | config_plex: Don't create the device until we're finished. parse_config: check for corrupted configuration, thus avoiding a potential panic. remove_sd_entry: Restore structure.
* free_vinum: Change some explicit struct member references to the SD,grog2001-05-221-13/+23
| | | | PLEX and VOL.
* Add xferinfo flag bit for copied buffers.grog2001-05-221-2/+16
| | | | | | | Create a new struct rangelockinfo. In revision 1.21 of vinumlock.c, the plex info was removed from struct rangelock, since it wasn't needed there. It *is* needed for trace information, however, so use struct rangelockinfo for that.
* New file containing definitions for separate views of objects forgrog2001-05-221-0/+275
| | | | userland and kernel.
* Send the remains (such as I have located) of "block major numbers" tophk2001-03-262-4/+1
| | | | the bit-bucket.
* devfs convertion used VINUMRMINOR incorrectly (passing args inalfred2001-03-221-3/+3
| | | | | | backwards order) Submitted by: Bernd Walter <ticso@mail.cicely.de>
* By convention, the moduledata is static unless there is a reason for itpeter2001-03-131-1/+1
| | | | to not be.
* Fix vinum for both devfs and non-devfs systems.alfred2001-02-202-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | userland tool: Use the vfs.devfs.generation sysctl to test for devfs presense (thanks phk!) when devfs is active it will not try to create the device nodes in /dev and therefore will not complain about the failure to do so. Revert the change in the #define for VINUM_DIR in the kernel header so that vinum can find its device nodes. Replace perror() with vinum_perror() to print file/line when DEVBUG is defined (not defined by default). kernel: Don't use the #define names for the "superdev" creation since they will be prepended by "/dev/" (based on VINUM_DIR), instead use string constants. Create both debug and non-debug "superdev" nodes in the devfs. Problem noticed and fix tested by: Martin Blapp <mblapp@fuchur.lan.attic.ch>
OpenPOWER on IntegriCloud