oster
cc2a28f2c0
Un-'__P'ify.
2001-01-27 20:42:20 +00:00
oster
1949425ffc
Nuke some bogus debug code that was already '#if 0'ed out.
2001-01-27 20:18:55 +00:00
oster
e6d8ca0dee
Cosmetic cleanup of some comments, and nuke an unused #define.
2001-01-27 20:10:49 +00:00
oster
75ea8b428e
Having moved some of the bits needed by raidctl into rf_configure.c, we
...
no longer need those bits here. In particular, this file is now only
used in the kernel, and that allows us to clean up a lot of cruft.
2001-01-27 19:34:43 +00:00
oster
3edd34f0be
More #if's. This needs some serious rototillage, but a few #if's will
...
suffice for now.
2001-01-27 02:13:34 +00:00
oster
c4a426333f
My.. what a twisty little maze of #defines and dependencies. Some of this
...
code is used for more than anticipated, and I missed a few checks last
night. Thanks to Bernd Ernesti for poking me about this.
2001-01-26 14:06:16 +00:00
oster
e47b177bc0
Nobody calls these bits if we arn't doing RAID5 with rotated spare stuff.
...
Add an #if.
2001-01-26 05:16:58 +00:00
oster
1763f954c7
These bits are only needed for the interdecluster stuff.. wrap them
...
with an #if.
2001-01-26 05:09:13 +00:00
oster
7833c33e99
Whoops.. Leave them on.. (for now.)
2001-01-26 04:43:16 +00:00
oster
a40eef11ac
Give the parity declustering code their own 'RAID arch' types, and
...
allow us to turn them off if desired.
2001-01-26 04:40:03 +00:00
oster
61a2ee28fb
Lots of stuff here that is only used for some of the 'fancier' RAID types.
...
Don't compile it if we arn't going to use it.
2001-01-26 04:27:16 +00:00
oster
bcc70a3f37
Clean up some INDENT warnings. (yes, these have been there for a while!)
2001-01-26 04:14:14 +00:00
oster
0a5ca1547d
Various parts of this file are only needed by the even/odd and PQ
...
RAID types. Don't include those bits if we arn't doing even/odd or PQ stuff.
2001-01-26 04:05:08 +00:00
oster
9880e186ec
Don't build the stuff in this file if RF_INCLUDE_EVENODD is not defined.
2001-01-26 03:50:53 +00:00
oster
c77d3c20a8
Ensure we update the 'partitionSize' field of the component labels
...
when doing a reconstruct or a copyback. If we don't, junk might be
there, and that could cause the component to be not correctly
autoconfigured on reboot. Thanks to Simon Burge for helping track this down.
2001-01-26 02:16:24 +00:00
fvdl
d040bd5908
Return error in the case of using ODIOCGDINFO or ODIOCGDEFLABEL when
...
the number of partitions is > OLDMAXPARTITIONS. This is better
than silently truncating the label (don't want to silently throw
away partitions when using an old disklabel binary on a label with
> 8 partitions). From Enami Tsugutomo.
2001-01-08 02:03:45 +00:00
fvdl
e2d1c1f926
Adapt all disk devices in MI directories to handle ODIOC* calls
...
for ports that have bumped MAXPARTITIONS (and thus define
__HAVE_OLD_DISKLABEL).
2001-01-07 18:09:01 +00:00
oster
b36a1a085e
For the RF_ASSERT() and RF_PANIC() macros, call a function to do the
...
sprintf, instead of doing the sprintf in the macros. This means just
1 copy of each of the error messages, chopping about about 16K off the
size of an i386 kernel. Thanks to Simon Burge and Enami Tsugutomo
for providing the inspiration to do this.
2000-12-15 02:12:58 +00:00
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
fvdl
b6d9ce390e
Comment out 2 cases of unitialized variable use (only used when
...
debugging is switched on, though).
2000-12-04 11:35:46 +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
fc40c38df6
Minor fixup for a printf(). Noted by Robert Elz.
2000-10-12 03:28:49 +00:00
oster
3ee0550572
convert tsleep()->ltsleep(), which makes the kernel complain less
...
when compiled with LOCKDEBUG.
2000-09-21 01:45:46 +00:00
oster
014e17fbdc
Correct a few calls to VOP_CLOSE().
2000-09-21 01:37:35 +00:00
oster
32802fc83f
Be consistent: use mcpair->cond instead of mcpair->flag.
...
This also lets us clean up a bunch of cruft.
2000-09-11 02:23:14 +00:00
oster
e8645831a5
Only reset the timer value if it actually accumlated time.
...
Otherwise it may never accumulate any time, and the recon delay
will never happen.
2000-09-11 00:22:45 +00:00
oster
3fa62c4642
Make sure we are passing a locked vp to VOP_CLOSE.
2000-09-08 01:36:35 +00:00
thorpej
a6b7f5a17d
Use RF_WAIT_COND() to avoid locking errors.
2000-08-20 16:51:03 +00:00
thorpej
d06cb9ab29
RF_COND_WAIT(): use ltsleep().
...
RF_SIGNAL_COND(): use wakeup_one().
2000-08-20 16:15:31 +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
ce2b2827e5
Nuke a printf that *I* added at least as early as Nov, 1998, and which is
...
as bogus now as it was then.
2000-06-29 00:22:27 +00:00
oster
7a0d138818
Nuke a (mostly) now-incorrect comment.
2000-06-11 03:35:38 +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
1dcc041500
Minor prototype cleanup.
2000-06-04 01:39:49 +00:00
oster
2c127bf249
Allow getting a component label from a spare disk.
2000-06-03 16:44:43 +00:00
oster
66e6338ac9
Use 'componentN' rather than leaving blanks for non-existant disks
...
in the 'raidctl -s' output.
2000-06-02 01:17:14 +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
00a6796b71
Oops.. reconstruction percentages were being reported incorrectly.
...
Thanks to Manuel Bouyer for noting this.
2000-05-31 00:52:36 +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
ef4a0a7cf8
Use #include <sys/kernel.h> instead of a 'extern int hz'.
...
Make this file more readable.
2000-05-30 02:04:29 +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
f1f5c4d00e
Fix a couple of typos. (Thanks Wiz! :) )
2000-05-29 01:43:04 +00:00
oster
39a667120f
In the event that an up-to-date component cannot be located for a specific
...
position, see if there is a failed component still hanging around that
we can use instead (but still mark it as failed). This leads to more
reasonable behaviour (and fewer surprises!) when autoconfiguring and
failed (or previously failed) components are still on the system.
2000-05-28 22:53:49 +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
1ddfaaf8fa
Umm.. Complete is not equal to 'left to do'. Fix the math.
2000-05-28 03:42:23 +00:00