| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
Approved by: re (jhb)
Notes:
svn path=/head/; revision=107763
|
| |
|
|
|
|
|
|
|
| |
system on a volume without a disk label.
Approved by: re (rwatson)
Notes:
svn path=/head/; revision=107536
|
| |
|
|
|
|
|
|
|
|
|
|
| |
could already exist, and this triggers a booby trap panic in make_dev.
remove_plex_entry: Don't remove the stripe mutex here, it gets done in
free_plex.
Approved by: re (rwatson)
Notes:
svn path=/head/; revision=107535
|
| |
|
|
|
|
|
|
|
| |
is not long long on all archs. (They happen to be long's on 64-bit arch's
and gcc considers that significant enough to warn about it.) These should
probably be uintmax_t but I didn't feel like adding all the extra includes.
Notes:
svn path=/head/; revision=106583
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(1) Use namei() and devfs to discover devices rather than a hard-coded
MAKEDEV implementation. Once rootfs is in place, this will allow
Vinum to be used for the root file system partition.
(2) Pass FREAD to device opens so that GEOM will return sector size
rather than an error on attempts to read label data.
(3) Avoid clobbering return values from close_drive() and masking this
failure, resulting in a later divide by zero due to not having
updated the Vinum-cached sector size.
(4) Ignore failures from DIOCWLABEL as that appears not to be required
in the GEOM environment.
We've done testing in simple Vinum environments, but those with more
complex environments might want to give this a spin in DP2 and make
sure everything is up to speed.
Fixes in collaboration with: iedowse
Reviewed by: grog
Notes:
svn path=/head/; revision=104501
|
| |
|
|
|
|
|
|
|
| |
release the mutex multiple times for multi-plex volumes.
Following further consultation with: grog
Notes:
svn path=/head/; revision=104500
|
| |
|
|
|
|
|
|
|
|
|
| |
before freeing so that WITNESS doesn't dereference mutex data pointers
and page fault. It's now possible to unload vinum.ko with a GENERIC
kernel on 5.0-CURRENT without panic.
Debugged/fixed with the aid of: jake, grog
Notes:
svn path=/head/; revision=104499
|
| |
|
|
|
|
|
| |
Sponsored by: DARPA & NAI Labs.
Notes:
svn path=/head/; revision=103698
|
| |
|
|
|
|
|
| |
Sponsored by: DARPA & NAI Labs.
Notes:
svn path=/head/; revision=103670
|
| |
|
|
| |
Notes:
svn path=/head/; revision=102241
|
| |
|
|
|
|
|
|
|
|
| |
the DIOCGDINFO ioctl into DIOCGDVIRGIN. This allows the newfs(8) to
work on vinum volumes without the now removed -v option.
Approved by: grog
Notes:
svn path=/head/; revision=101860
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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).
Notes:
svn path=/head/; revision=97273
|
| |
|
|
| |
Notes:
svn path=/head/; revision=97217
|
| |
|
|
| |
Notes:
svn path=/head/; revision=96755
|
| |
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=96475
|
| |
|
|
|
|
|
|
|
|
| |
Submitted by: Holger Kipp <holger.kipp@alogis.com>
PR: 37458
MFC after: 5 days
(to get 4.6 code freeze)
Notes:
svn path=/head/; revision=95484
|
| |
|
|
|
|
|
| |
Sponsored by: DARPA & NAI Labs
Notes:
svn path=/head/; revision=94182
|
| |
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=93818
|
| |
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=93657
|
| |
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=93655
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
Notes:
svn path=/head/; revision=93593
|
| |
|
|
| |
Notes:
svn path=/head/; revision=93396
|
| |
|
|
| |
Notes:
svn path=/head/; revision=92780
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=92363
|
| |
|
|
| |
Notes:
svn path=/head/; revision=91062
|
| |
|
|
|
|
|
|
|
| |
show that you should check the code even for a forced commit.
Spotted by: dd
Notes:
svn path=/head/; revision=89941
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=89939
|
| |
|
|
|
|
|
| |
the config lock. The call was in fact superfluous.
Notes:
svn path=/head/; revision=89842
|
| |
|
|
| |
Notes:
svn path=/head/; revision=86019
|
| |
|
|
|
|
|
| |
Reported by: Jeff Roberson <jeff@midstream.com>
Notes:
svn path=/head/; revision=85939
|
| |
|
|
|
|
|
|
|
| |
plex.
Indirectly found by: Hendrik Scholz <hscholz@perikles.toppoint.de>
Notes:
svn path=/head/; revision=84875
|
| |
|
|
| |
Notes:
svn path=/head/; revision=84811
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=83366
|
| |
|
|
|
|
|
| |
of mutexes if a lot of plexes are created and destroyed.
Notes:
svn path=/head/; revision=82934
|
| |
|
|
|
|
|
| |
Submitted by: Valery Kotchiev <valery@rudiment.dk>
Notes:
svn path=/head/; revision=80808
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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'
Notes:
svn path=/head/; revision=80430
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=78237
|
| |
|
|
| |
Notes:
svn path=/head/; revision=77100
|
| |
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=77030
|
| |
|
|
|
|
|
| |
requiring fewer header files for userland programs.
Notes:
svn path=/head/; revision=77029
|
| |
|
|
| |
Notes:
svn path=/head/; revision=77028
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=77027
|
| |
|
|
|
|
|
|
|
| |
Missed by: Szilveszter Adam <sziszi@petra.hos.u-szeged.hu>
David Wolfskill <david@catwhisker.org>
Pointy hat to: grog
Notes:
svn path=/head/; revision=77018
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76975
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=76964
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
Notes:
svn path=/head/; revision=76963
|
| |
|
|
|
|
|
|
| |
parameters to return. This code is used both in userland and in the
kernel.
Notes:
svn path=/head/; revision=76962
|
| |
|
|
| |
Notes:
svn path=/head/; revision=76961
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=76960
|
| |
|
|
|
|
|
| |
structures.
Notes:
svn path=/head/; revision=76959
|