| Age | Commit message (Collapse) | Author |
|
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.
|
|
Update used spares with the correct parity map bits too.
Addresses PR#42904 by Louis Guillaume. Fix confirmed by submitter.
Thanks!
|
|
attempt to read its label fails. OKed by oster@.
|
|
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.)
|
|
|
|
|
|
sys/device.h will fail compilation (struct kmutex will not be defined
completely).
|
|
|
|
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.
|
|
only.
|
|
|
|
config_detach(9) to shutdown a RAID.
Detach raid(4) units at shutdown.
Ok by oster@.
|
|
moments later, we'll take a fatal plunge because sc_dev is null.
|
|
|
|
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@.
|
|
|
|
and fix from Anthony Mallet in PR#41328. Thanks!
|
|
|
|
about types (for instance uint32_t was being printed with %d).
|
|
holdovers from the simulator and would never be seen/used in-kernel.
|
|
|
|
|
|
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
|
|
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.)
|
|
|
|
|
|
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!
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
the reconstruct and wait for IOs to drain before pulling the plug.
Should fix the panic reported by der Mouse on tech-kern.
|
|
|
|
|
|
distributed sparing bits, but no-one has compile-tested the code.
Un-breaks the ALL build.
|
|
case, and is only needed for parity declustering with distributed
sparing.
|
|
|
|
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.
|
|
on current-users. Thanks!
|
|
attribute definitions which were only to trick config(8)
|
|
- Don't bother taking the v_interlock or bumping b_vp->v_numoutput --
there won't be any other writers for this bp, and so there's no point
doing this locking song'n'dance.
Patch from Juergen Hannken-Illjes. Thanks!!!
Addresses PR#38856. With this change I've been unable to
replicate the hard hangs.
|
|
Spotted by Juergen Hannken-Illjes. Thanks!
|
|
Reconmap used to have one pointer for every reconstruction unit. This
does not scale well in the land of 1TB disks, where some 100MB+ of
"status pointers" are required for typical configurations. Convert
the reconstruction code to use a "sliding status window" which will
scale nicely regardless of the number of stripes/reconstruction units
in the RAID set. Convert the main reconstruction loop to rebuild the
array in chunks rather than in one big lump.
As part of these changes, introduce a function to kick any waiters on
the head separation callback list, and use that in the main
reconstruction event queue to wake up the waiters if things have
stalled. (I believe this may fix a race condition that could occur at
at least at the very end of a disk during reconstruction under heavy
IO load.)
Thanks to Brian Buhrow for all his help, support, and patience in
testing these changes.
|
|
to be positive integers.
|
|
|
|
|
|
sets. This helps ensure that the sliding status window (coming soon!)
for reconstructs will always be correct.
|
|
for that disk have stopped, since this will bump us out of the normal
reconstruction loop prematurely.
Fixes the (mostly cosmetic) bug where the reconstruction
status values stop updating, and from raidctl it appears that
reconstruction has totally stalled (which it actually hasn't -- the
reconstruction does complete properly, but not in the normal way).
|