| Age | Commit message (Collapse) | Author |
|
initial patch.
|
|
|
|
destroy of 'struct disk' from attach / detach.
|
|
for the dump is selected in this order of preference:
1) the master
2) a used_spare of the master
3) the slave
4) a used_spare of the slave
|
|
(via private mail). Thanks!
|
|
when arrays have a large number of stripes. Remove unused variable
(recon_stripes_done). Thanks to Dieter Roelants for the report,
suggestions, and testing. Addresses PR#36878.
|
|
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
|
|
|
|
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
|
|
that tells whether the given path is in user space or kernel space, so it
can tell NDINIT().
While the raidframe calls were ok, both ccd(4) and cgd(4) were passing
pointers to user space data, which leads to strange error on i386, as
reported by Jukka Salmi on current-users.
The issue has been there since last august, I'm actually a bit surprised
that no one in the meantime has used ccd(4) or cgd(4) on an arch where it
would have simply faulted.
|
|
|
|
|
|
the pool's lock.
|
|
use the RAID set that contains the component used for booting. Thanks
to manu@ for the main part of this.
|
|
|
|
Patch by Slava Semushin <slava.semushin@gmail.com>
Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
|
|
|
|
even if we've detected a 'root on raid' autoconfigure. This change is really
only cosmetic, since setroot() will still do the right thing and honor
the 'root on foo' setting.
|
|
|
|
- fix a couple of unused bugs
- no more -Wno-unused for i386
|
|
|
|
|
|
|
|
and friends. Addresses PR#32881. BOOT_FROM_RAID_HOOKS dies.
More simplification possible now.
|
|
that memory, fail harder, and bail on configuring the RAID array.
Addresses PR#25787.
|
|
(likely accidentally) added as the only change in the last commit.
|
|
with spl used to protect other allocations and frees, or datastructure
element insertion and removal, in adjacent code.
It is almost unquestionably the case that some of the spl()/splx() calls
added here are superfluous, but it really seems wrong to see:
s=splfoo();
/* frob data structure */
splx(s);
pool_put(x);
and if we think we need to protect the first operation, then it is hard
to see why we should not think we need to protect the next. "Better
safe than sorry".
It is also almost unquestionably the case that I missed some pool
gets/puts from interrupt context with my strategy for finding these
calls; use of PR_NOWAIT is a strong hint that a pool may be used from
interrupt context but many callers in the kernel pass a "can wait/can't
wait" flag down such that my searches might not have found them. One
notable area that needs to be looked at is pf.
See also:
http://mail-index.netbsd.org/tech-kern/2006/07/19/0003.html
http://mail-index.netbsd.org/tech-kern/2006/07/19/0009.html
|
|
are updated each time the component labels are written.
|
|
unsigned for now. This prevents rf_reasonable_label() from rejecting
a valid label when these fields have an integer overflow. The reality
is that these need to be 64-bit quantities, but that will come later.
|
|
|
|
- allow raid to be configured in a wedge
- allow wedges to be configured in a raid
- add autoconfiguration of wedges in a raid
|
|
Mostly from Arnaud Lacombe, many thanks!
|
|
|
|
|
|
- Minor cosmetic changes.
|
|
|
|
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
|
|
|
|
and make it build again. XXX: Paritylogging bits still won't build.
|
|
|
|
|
|
b_private macro.
OK'd by oster@
|
|
|
|
coverity 2745 / run 11
|
|
original RAIDframe code had the same bug with dag_h being used when
possibly NULL. Use dagList as the starting point for any potential
dag_h's. Move the initialization of dag_h in this part to a
little later. Loop now runs through in equivalent lock-step with the
construction of the dagList earlier in the function.
Addresses Coverity CID 1129 (id=6841 Run 5).
|
|
|
|
autoconfig.
From Coverity CIDs 2328, 2324, 2323, 1125
|
|
bit of dead code. Addresses Coverity CID 728 NetBSD Scan 5.
|
|
Tested by me.
|
|
- nuke an extraneous memset() (RF_Malloc() already does that)
from RAIDFRAME_GET_INFO in raidioctl().
|