oster
7a8eea351b
Fix a couple of warnings about uninitialized variables. Thanks go to
...
Frank van der Linden for pointing these out.
2000-12-05 01:35:56 +00:00
chs
c62d17a551
rationalize the use of b_flags for geteblk() buffers.
...
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
oster
d349cdf1ef
Move disk_busy() and disk_unbusy() to more sane locations. Values
...
reported by 'systat iostat' and friends are now much more correct for
RAIDframe devices. Thanks to Andrew Doran for poking me about this,
and for suggestions on and review of the changes.
2000-10-20 02:24:45 +00:00
oster
f9a49b32bf
Don't touch a failed component at all. Thanks to Robert Elz (kre) for
...
noting the problem and providing additional comments.
2000-10-17 03:39:41 +00:00
oster
014e17fbdc
Correct a few calls to VOP_CLOSE().
2000-09-21 01:37:35 +00:00
oster
3fa62c4642
Make sure we are passing a locked vp to VOP_CLOSE.
2000-09-08 01:36:35 +00:00
oster
49742b54fa
Remove a bogus VOP_UNLOCK.
2000-08-19 18:20:07 +00:00
oster
3a17c9470d
Don't try to initialize a component label on a failed component.
2000-08-19 18:07:36 +00:00
oster
dc4b749234
Fix the status reporting for copybacks. Thanks to Hubert Feyrer for
...
reporting the problem.
2000-07-14 15:26:29 +00:00
oster
6dcc553fae
Remove outdated comment.
2000-06-04 02:16:05 +00:00
oster
0b63accce0
Merge rf_update_component_labels() and rf_final_update_component_labels().
2000-06-04 02:05:13 +00:00
oster
2c127bf249
Allow getting a component label from a spare disk.
2000-06-03 16:44:43 +00:00
matt
c9aff328d9
Make booted_device global (and booted_parition for consitency).
...
Eliminate it from header files and other extern definitions.
2000-06-01 00:49:49 +00:00
oster
8e82dfa363
For a RAID 1 set that has N components, allow the set to auto-configure as
...
long as at least one of the master or the mirror is available for each
of the N/2 'rows' of the set. (No, RAIDframe doesn't do N-way mirroring..)
Thanks to Manuel Bouyer for noting the problem.
2000-05-30 03:29:49 +00:00
oster
c11100526b
Don't let the autodetection code get tripped up by negative mod-counters.
2000-05-29 02:57:34 +00:00
oster
f329fb84ad
We need to be slightly more clever during auto-configuration, to make
...
sure that we a) don't ignore components with correct mod-counters, and
b) do ignore components with bogus mod-counters.
2000-05-28 05:23:41 +00:00
oster
e38b4355e2
Abort any parity re-writes before unconfiguring a RAID set.
...
Partially addresses PR#10182.
2000-05-28 03:00:31 +00:00
oster
228570e110
When setting auto-config/rootable bits, only try to update the
...
component label if the component is actually alive.
2000-05-28 01:03:22 +00:00
oster
1aaf6772f1
- Add a mechanism for obtaining finer-grained 'progress' information
...
regarding reconstructs, copybacks, etc.
- RAID 0 doesn't do copybacks, but don't make raidctl sweat about it.
2000-05-28 00:48:30 +00:00
oster
26b4598736
Components which match on everything but the mod_counter are
...
renegades, and must be handled correctly. In particular, they should
be added to their old auto-config set, but then immediately released.
Failing to do otherwise means that they potentialy end up in a
different (and competing!) RAID set which may auto-configure in place
of the correct one, and cause all sorts of chaos at auto-configure
time.
2000-05-27 20:29:14 +00:00
oster
e9b5b7aa5e
Add a comment to clarify why we actually want the component label to
...
be considered a 'match' even if the mod_counter is wrong.
2000-05-27 19:12:03 +00:00
oster
d2b2ed0970
Checking parity re-write status makes no sense on RAID 0, but let's
...
return something reasonable anyway.
2000-05-27 18:23:27 +00:00
thorpej
071aed40ac
A foolish consistency; most parts of the kernel use bp->b_data, so
...
change these from bp->b_un.b_addr to bp->b_data, as well. This also
allows us more flexibility to experiment with other data buffer types
hung off of struct buf.
2000-05-19 18:54:22 +00:00
minoura
c2e8f67477
Add some missing casts of ioctl arg.
...
Obviously autoconfiguration wouldn't work on big-endian machines.
2000-05-19 04:53:25 +00:00
oster
db11351ced
Make sure the config structure allocated during autoconfiguration actually
...
gets initialized properly. Should fix PR#9816.
2000-04-27 00:57:48 +00:00
oster
cf0b47bd0e
Minor cleanup of unneeded verbosity.
2000-03-31 02:05:24 +00:00
oster
cd61979606
Print out the 'root' status of a RAID set during autoconfiguration.
2000-03-31 01:20:43 +00:00
augustss
169ac5b3c1
Remove register declarations.
2000-03-30 12:41:09 +00:00
oster
2ee63332b3
Add bits for eventual support of deleteing components and moving
...
hot-spares into the main set.
2000-03-26 22:38:28 +00:00
oster
e44151e8d6
Fix up some autoconfigure messages. In particular, don't try printing
...
the value of an uninitialized variable. Noted by Luke Mewburn.
2000-03-22 01:41:41 +00:00
oster
7f288b4e0d
Just return "100% done" when asked about reconstruction progress on
...
a RAID0 set.
2000-03-20 22:59:26 +00:00
oster
7c57ac56d7
Cleanup a couple of function declarations. No functional changes.
2000-03-07 03:09:47 +00:00
oster
51ffb0924c
Create a new rf_close_component() to handle vnode operations for closing
...
components. Teach rf_UnconfigureVnodes() how to use it, and tell
the copyback and reconstruction code about it too.
2000-03-07 02:59:50 +00:00
oster
ddebc1cad0
Move rf_UnconfigureVnodes to rf_netbsdkintf.c where it will be more at home.
...
Add prototype to rf_kintf.h, and nuke old prototypes from rf_disks.c and
rf_driver.c .
2000-03-07 02:28:05 +00:00
oster
33a55d022b
rf_ protect the component label print routine, and make it more easily
...
available to the rest of RAIDframe.
2000-03-07 02:12:13 +00:00
oster
1231bd6d14
Umm... don't allow attempts to configure the same RAID device multiple times.
...
The check was there, but the return() was missing :(
2000-03-04 06:03:21 +00:00
oster
87f46374bb
Minor cleanup. No functional changes.
2000-03-03 01:46:36 +00:00
oster
8c46e74418
Nuke some debugging output that got left in by mistake.
2000-02-27 02:35:33 +00:00
oster
82419f5ae9
Only mark the components as CLEAN if it's the last thing we're doing.
...
Marking them CLEAN earlier is (currently) asking for trouble.
(XXX This could have been done more elegantly.)
2000-02-27 01:50:22 +00:00
oster
d9c47013b2
Defopt 'RAID_AUTOCONFIG'. Adding 'options RAID_AUTOCONFIG' turns on
...
the component auto-detection and auto-configuration of RAID sets.
Also, add "#options RAID_AUTOCONFIG" to the GENERIC config files.
2000-02-26 17:35:33 +00:00
oster
caa3932441
Minor cleanups. Remove extra debugging printouts.
2000-02-25 20:11:00 +00:00
oster
21243f6205
- ignore the mod_counter when checking to see if a component fits with the
...
rest of an autoconfig set.
- minor cleanups
2000-02-25 19:56:56 +00:00
oster
a4f7f062fd
- cleanup raidinit()
...
- cleanup rf_mountroot_hooks()
- various other cleanups.
2000-02-25 02:42:30 +00:00
oster
5716b5d6d1
Be *slightly* more consistent about the use of num and numraid in raidattach().
2000-02-25 02:21:12 +00:00
oster
99f070bab8
- mod_counter needs to get incremented more often.
...
- use raid_init_component_labels instead of hand-rolling a component_label.
(missed doing this for the rf_used_spare case when updating component labels).
- fix serial number initialization in raid_init_component_labels
2000-02-24 01:23:05 +00:00
oster
d91ecfbcfd
Be more aggressive about updating component labels in the event
...
of a real component failure (or a simulated failure):
- add 'numNewFailures' to keep track of the number of disk failures
since mod_counter was last updated for each component label.
- make sure we call rf_update_component_labels() upon any component failure,
real or simulated.
2000-02-23 03:44:02 +00:00
oster
e7f3dc2ec9
blockSize for the component label is already set correctly here.
2000-02-23 02:11:05 +00:00
oster
0c43bf18f0
- cleanup of more component label code
...
- make current default label values available everywhere
- make sure numBlocks and blockSize in component labels get initialized
for all component labels
- check for component size to be smaller than or equal to the partition size
when autoconfiguring
2000-02-23 02:04:21 +00:00
oster
214822e08c
Note the fact that the first arg of raidinit() may be bogus in
...
the autoconfig case (the value of the first arg never gets used, but...).
2000-02-22 23:13:15 +00:00
oster
e8ff7f6155
Bounds-check the 'last unit' a little more closely.
2000-02-22 16:07:02 +00:00