| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
ok jsing krw
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
volume, ignoring any device name specified in the bio(4) ioctl struct.
One of bio(4)'s design flaws is that the device name is hardcoded in many
of the ioctl structs, making it basically unusable with DUIDs. In the case
of `bioctl -d' the bioctl(8) code actually uses opendev(3) on the given
name, then issues the ioctl directly to the resulting device. As such, we
already know which device (or in this case, softraid volume) the ioctl was
intended for, however the current softraid(4) code ignores this and instead
attempts to perform a lookup using the name in the bio(4) ioctl struct.
This diff splits the sr_bio_ioctl() code into two parts - one that implements
the API required by bio(4) and the other that contains the ioctl handling
code, which now takes an optional pointer to the softraid discipline. If an
ioctl is issued to a SCSI device associated with a softraid volume, pass
the corresponding softraid discipline struct through and to the bio ioctl
handler and use it in preference to performing a device name lookup.
Amongst other things, this makes bioctl -d now work with DUIDs.
ok krw@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interrupt context to a taskq running in a thread. however, there
is a concern that if we do that then we allow accidental use of
sleeping APIs in this work, which will make it harder to move the
work back to interrupts in the future.
guenther and kettenis came up with the idea of marking a proc with
CANTSLEEP which the sleep paths can check and panic on.
this builds on that so you create taskqs that run with CANTSLEEP
set except when they need to sleep for more tasks to run.
the taskq_create api is changed to take a flags argument so users
can specify CANTSLEEP. MPSAFE is also passed via this flags field
now. this means archs that defined IPL_MPSAFE to 0 can now create
mpsafe taskqs too.
lots of discussion at s2k15
ok guenther@ miod@ mpi@ tedu@ pelikan@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when workqs were introduced, we provided a second argument so you
could pass a thing and some context to work on it in. there were
very few things that took advantage of the second argument, so when
i introduced pools i suggested removing it. since tasks were meant
to replace workqs, it was requested that we keep the second argument
to make porting from workqs to tasks easier.
now that workqs are gone, i had a look at the use of the second
argument again and found only one good use of it (vdsp(4) on sparc64
if you're interested) and a tiny handful of questionable uses. the
vast majority of tasks only used a single argument. i have since
modified all tasks that used two args to only use one, so now we
can remove the second argument.
so this is a mechanical change. all tasks only passed NULL as their
second argument, so we can just remove it.
ok krw@
|
| |
|
| |
|
|
|
|
|
|
| |
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt
|
|
|
|
| |
to include that than rdnvar.h. ok deraadt dlg
|
| |
|
| |
|
|
|
|
|
| |
many years and wide spread demand for support never materialized.
time to pack it in.
|
|
|
|
| |
ok mpi@ kspillner@
|
|
|
|
|
|
|
|
| |
CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.
ok millert@
|
|
|
|
|
|
|
|
|
|
|
| |
from the volume metadata rather than the currently defined data offset.
This allows rebuilds to work correctly when the volume metadata has a
different data offset to that currently in use (for example, volumes
created prior to softraid gaining boot support).
Found the hard way by henning@
ok deraadt@
|
| |
|
|
|
|
| |
much help and ok from deraadt@
|
|
|
|
| |
ok tedu
|
|
|
|
| |
after discussions with beck deraadt kettenis.
|
|
|
|
|
|
| |
workq to taskq
ok jsing@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the disciplines right after vfs_shutdown().
This change is required in order to be able to set `cold' to 1 before
traversing the device (mainbus) tree for DVACT_POWERDOWN when halting
a machine. Yes, this is ugly because sr_shutdown() needs to sleep. But
at least it is obvious and hopefully somebody will be ofended and fix
it.
In order to properly flush the cache of the disks under softraid0,
sr_shutdown() now propagates DVACT_POWERDOWN for this particular subtree
of devices which are not under mainbus. As a side effect sd(4) shutdown
hook should no longer be necessary.
Tested by stsp@ and Jean-Philippe Ouellet.
ok deraadt@, stsp@, jsing@
|
| |
|
| |
|
|
|
|
|
|
| |
to the existing rebuild code.
ok krw@
|
|
|
|
|
|
| |
the rebuild thread. Rename it to sr_rebuild_start to make this clearer.
ok krw@
|
|
|
|
| |
sr_dump_block and place it under the debug define in the process.
|
|
|
|
| |
ok dlg@
|
| |
|
|
|
|
| |
ok krw@
|
|
|
|
|
|
| |
for variable size work units. While here, remove some pointless checks.
ok krw@
|
|
|
|
|
|
|
|
| |
the specific fields that are either not persistent for the life of the
workunit and/or not reinitialised in sr_wu_release_ccbs. This is also
necessary for upcoming changes.
ok krw@
|
|
|
|
| |
ok dlg@
|
|
|
|
| |
ok krw@
|
|
|
|
|
|
|
| |
deadlock since nothing will ever come back to tell us that the workunit
is completed.
ok krw@
|
|
|
|
| |
RAID 6 borrow them from RAID 5.
|
|
|
|
| |
Discussed with krw@
|
|
|
|
|
|
| |
5 instead of RAID 4, assuming both were functional.
Discussed with krw@
|
|
|
|
|
|
|
| |
this is not the case on hppa (practically the only architecture where
unlocked has a non-zero value). This one has been hiding since r1.223...
Found the hard way by juanfra@
|
|
|
|
|
|
|
|
|
| |
u_int32_t's with %u.
Translate DL_GETPSIZE() results to 512-byte-block values with
DL_SECTOBLK().
ok jsing@
|
|
|
|
|
| |
can expose some of the kernel structures with split .h files if need be.
Discussed with various, including jsing.
|
|
|
|
|
|
| |
variables. Some random whitespace/knf repairs encountered on the way.
ok miod@ on inspection, feedback & more suggestions from millert@
|
|
|
|
|
|
| |
Found by Maxime Villard.
ok jsing@
|
|
|
|
|
|
|
|
| |
discipline supports redundancy. In the non-redundant case, there is little
to gain my failing the chunk, in fact it just makes any form of data
recovery significantly harder.
ok krw@ todd@
|
|
|
|
|
| |
test period; i think 3 years ago the last bugs fell out.
ok otto beck others
|
|
|
|
|
|
| |
softraid status functions will complain otherwise.
Found the hard way by ajacoutot@
|
|
|
|
| |
not need to invoke a workq-based callback.
|
|
|
|
|
|
|
| |
simplifies the discipline code, avoids code duplication and moves the
scheduling logic into a single location.
ok krw@
|
|
|
|
| |
the caller having to handle the state changes.
|
| |
|
|
|
|
| |
scheduled, rather than trying to imply this from the rebuild flag.
|