History log of /src/sys/dev/raidframe/raidframevar.h |
Revision | | Date | Author | Comments |
1.23 |
| 07-Aug-2021 |
thorpej | Merge thorpej-cfargs2.
|
1.22 |
| 02-Aug-2021 |
oster | Accidentally commited some other changes that weren't quite ready. Add these changes to fix the build.
|
1.21 |
| 10-Oct-2019 |
christos | branches: 1.21.18; fix the function pointer and callback mess: - callback functions return 0 and their result is not checked; make them void. - there are two types of callbacks and they used to overload their parameters and the callback structure; separate them into "function" and "value" callbacks. - make the wait function signature consistent.
|
1.20 |
| 26-Sep-2019 |
christos | make nspares unsigned; it is assigned from numSpares which is unsigned.
|
1.19 |
| 19-Apr-2018 |
christos | branches: 1.19.2; s/static inline/static __inline/g for consistency.
|
1.18 |
| 18-Jan-2018 |
mrg | branches: 1.18.2; implement 32-bit compat support for raidframe.
convert several raidframe ioctls to be bitsize idempotent so that they work the same in 32 and 64 bit worlds, allowing netbsd32 to configure and query raid properly. remove useless 'row' in a few places. add COMPAT_80 and put the old ioctls there.
raidframeio.h: RAIDFRAME_TEST_ACC - remove, unused RAIDFRAME_GET_COMPONENT_LABEL - convert to label not pointer to label RAIDFRAME_CHECK_RECON_STATUS_EXT RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT RAIDFRAME_CHECK_COPYBACK_STATUS_EXT - convert to progress info not pointer to info RAIDFRAME_GET_INFO - version entirely. raidframevar.h: - rf_recon_req{} has row, flags and raidPtr removed (they're not a useful part of this interface.) - RF_Config_s{} and RF_DeviceConfig_s{} have numRow/rows removed. - RF_RaidDisk_s{} is re-ordered slightly to fix alignment padding - the actual data was already OK. - InstallSpareTable() loses row argument
rf_compat32.c has code for RF_Config_s{} in 32 bit mode, used by RAIDFRAME_CONFIGURE and RAIDFRAME_GET_INFO32.
rf_compat80.c has code for rf_recon_req{}, RF_RaidDisk_s{} and RF_DeviceConfig_s{} to handle RAIDFRAME_FAIL_DISK, RAIDFRAME_GET_COMPONENT_LABEL, RAIDFRAME_CHECK_RECON_STATUS_EXT, RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT, RAIDFRAME_CHECK_COPYBACK_STATUS_EXT, RAIDFRAME_GET_INFO.
move several of the per-ioctl code blocks into separate functions.
add rf_recon_req_internal{} to replace old usage of global rf_recon_req{} that had unused void * in the structure, ruining it's 32/64 bit ABI.
add missing case for RAIDFRAME_GET_INFO50.
adjust raid tests to use the new .conf format, and add a case to test the old method as well.
raidctl: deal with lack of 'row' members in a couple of places. fail request no longer takes row. handle "START array" sections with just "numCol numSpare", ie no "numRow" specified. for now, generate old-style configuration but update raidctl.8 to specify the new style (keeping reference to the old style.)
note that: RF_ComponentLabel_s::{row,num_rows} and RF_SingleComponent_s::row are obsolete but not removed yet.
|
1.17 |
| 14-Nov-2014 |
oster | Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete.
The issue was that a component was being marked as a used_spare when the rebuild started, not when the rebuild was actually finished. Marking it as a used_spare meant that the component label on the spare was being updated such that after a reboot the component would be considered up-to-date, regardless of whether the rebuild actually completed!
This fix includes: 1) Add an additional state "rf_ds_rebuilding_spare" which is used to denote that a spare is currently being rebuilt from the live components. 2) Update the comments on the disk states, which were out-of-sync with reality. 3) When rebuilding to a spare component, that spare now enters the state rf_ds_rebuilding_spare instead of the state rf_ds_used_spare. 4) When the rebuild is actually complete then the spare component enters the rf_ds_used_spare state. rf_ds_used_spare is now used exclusively for the case where the rebuilding to the spare has completed successfully.
XXX: Someday we need to teach raidctl(8) about this new state, and take out the backwards compatibility code in rf_netbsdkintf.c (see RAIDFRAME_GET_INFO in raidioctl()). For today, this fix needs to be generic enough that it can get backported without major grief.
XXX: Needs pullup to netbsd-5*, netbsd-6*, and netbsd-7
Fixes PR#49244.
|
1.16 |
| 28-Feb-2014 |
skrll | branches: 1.16.4; G/C sys/simplelock.h includes
|
1.15 |
| 19-Feb-2011 |
enami | branches: 1.15.4; 1.15.10; 1.15.14; 1.15.16; 1.15.18; 1.15.24; Define accessors for number of blocks and partition size in the component label and use them where appropriate. Disscussed on tech-kern.
|
1.14 |
| 01-Nov-2010 |
mrg | branches: 1.14.2; 1.14.4; add support for >2TB raid devices.
- add two new members to the component label: u_int numBlocksHi u_int partitionSizeHi and store the top 32 bits of the real number of blocks and partition size. modify rf_print_component_label(), rf_does_it_fit(), rf_AutoConfigureDisks() and rf_ReconstructFailedDiskBasic().
- call disk_blocksize() after disk_attach() [ from mlelstv ]
- shift the block number relative to DEV_BSHIFT in raidstart() and InitBP() so that accesses work for non 512-byte devices. [ from mlelstv ]
- update rf_getdisksize() to use the new getdisksize() [ from mlelstv. this part needs a separate change for netbsd-5. ]
reviewed by: oster, christos and darrenr
|
1.13 |
| 17-Nov-2009 |
jld | branches: 1.13.2; 1.13.4; Finally commit the RAIDframe parity map Summer Of Code project.
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.
|
1.12 |
| 28-Apr-2008 |
martin | branches: 1.12.10; 1.12.18; Remove clause 3 and 4 from TNF licenses
|
1.11 |
| 04-Jan-2008 |
ad | branches: 1.11.6; 1.11.8; 1.11.10; Start detangling lock.h from intr.h. This is likely to cause short term breakage, but the mess of dependencies has been regularly breaking the build recently anyhow.
|
1.10 |
| 05-Sep-2006 |
oster | branches: 1.10.28; 1.10.34; 1.10.42; Per a suggestion from Manuel, make numBlocks and partitionSize 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.
|
1.9 |
| 11-Dec-2005 |
christos | branches: 1.9.4; 1.9.8; 1.9.18; merge ktrace-lwp.
|
1.8 |
| 27-Feb-2005 |
perry | branches: 1.8.4; nuke trailing whitespace
|
1.7 |
| 02-Jun-2004 |
drochner | branches: 1.7.4; 1.7.6; fix const'ificication, gcc-3.4 will notice it
|
1.6 |
| 04-Jan-2004 |
oster | branches: 1.6.2; As noted by Thierry Deval in a posting to misc/at/openbsd.org, rf_DecrAccessesCountState wasn't in the correct spot in RF_AccessState_e. Following up on that has resulted in one other correction. Changing orderings of these states is tricky, and shouldn't be attempted without some thorough analysis. For the changes committed, the following analysis is offerred:
1) RAIDframe uses a little state machine to take care of building, executing, and processing the DAGs used to direct IO.
2) The rf_DecrAccessesCountState state is handled by the function rf_State_DecrAccessCount(). The purpose of this state is to decrement the number of "accesses-in-flight".
3) rf_Cleanup_State is handled by rf_State_Cleanup(). Its job is to do general cleanup of DAG arrays and any stripe locks.
4) DefaultStates[] in rf_layout.c indicates that the right spot for rf_DecrAccessesCountState is just before rf_Cleanup_State. Analysis of code for both states indicates that the order doesn't matter too much, although rf_State_DecrAccessCount() should probably take place *after* rf_State_Cleanup() to be more correct.
5) Comments in rf_State_ProcessDAG() indicates that the next state should be rf_Cleanup_State. However: it attempts to get there by using
desc->state++;
which actually takes it to just rf_DecrAccessesCountState! This turned out to be OK before, since rf_Cleanup_State would follow right after, and all would be taken careof (albeit in arguably the "less correct" order).
6) With the current ordering, if we head directly to rf_Cleanup_State (as we do, for example, if multiple components fail in a RAID 5 set), then we'll actually miss going trough rf_DecrAccessesCountState), and could end up never being able to reach quiescence! Perhaps not too big of a deal, given that the RAID set is pretty much toast by that point at which such a drastic state change happens, but might as well have this correct.
The changes made are: 1) Since having rf_State_DecrAccessCount() come after rf_State_Cleanup() is just fine, change rf_layout.c to reflect that rf_DecrAccessesCountState comes after rf_Cleanup_State (i.e. they swap positions in the state list). This means that going to rf_Cleanup_State after bailing on a failed DAG access will do all the right things -- the state will get cleaned up, and then the access counts will get decremented properly. The comment in rf_State_ProcessDAG() is now actually correct -- the next state *will* be rf_Cleanup_State.
2) Move rf_DecrAccessesCountState in RF_AccessState_e to just after rf_CleanupState. This puts RF_AccessState_e in sync with DefaultStates[]. Fortunately, these states are rarely referred to by name, and so this change ends up being mostly cosmetic -- it really only fixes cleanup behaviour for the recent "Failed to create a DAG" changes.
|
1.5 |
| 29-Dec-2003 |
oster | [Having received a definite lack of strenuous objection, a small amount of strenuous agreement, and some general agreement, this commit is going ahead because it's now starting to block some other changes I wish to make.]
Remove most of the support for the concept of "rows" from RAIDframe. While the "row" interface has been exported to the world, RAIDframe internals have really only supported a single row, even though they have feigned support of multiple rows.
Nothing changes in configuration land -- config files still need to specify a single row, etc. All auto-config structures remain fully forward/backwards compatible.
The only visible difference to the average user should be a reduction in the size of a GENERIC kernel (i386) by 4.5K. For those of us trolling through RAIDframe kernel code, a lot of the driver configuration code has become a LOT easier to read.
|
1.4 |
| 12-Aug-2003 |
dsl | Let boot code include raidframe.h to get RF_PROTECTED_SECTORS.
|
1.3 |
| 01-Feb-2003 |
tron | branches: 1.3.2; Only use MALLOC_DECLARE() in kernel namespace.
|
1.2 |
| 01-Feb-2003 |
thorpej | Add extensible malloc types, adapted from FreeBSD. This turns malloc types into a structure, a pointer to which is passed around, instead of an int constant. Allow the limit to be adjusted when the malloc type is defined, or with a function call, as suggested by Jonathan Stone.
|
1.1 |
| 04-Oct-2001 |
oster | branches: 1.1.2; 1.1.4; 1.1.8; Step 1 of the disentangling of RAIDframe's .h files:
raidframevar.h - contains bits of rf_types.h, rf_layout.h, rf_netbsd.h, rf_raid.h, and rf_decluster.h.
raidframeio.h - contains the bits needed for doing IOCTL's w/ RAIDframe.
These bits will be visible to userland.
|
1.1.8.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.1.8.1 |
| 04-Oct-2001 |
thorpej | file raidframevar.h was added on branch kqueue on 2002-01-10 19:57:36 +0000
|
1.1.4.4 |
| 12-Jul-2002 |
nathanw | No longer need to pull in lwp.h; proc.h pulls it in for us.
|
1.1.4.3 |
| 23-Feb-2002 |
gmcgarry | LWP'ify
|
1.1.4.2 |
| 22-Oct-2001 |
nathanw | Catch up to -current.
|
1.1.4.1 |
| 04-Oct-2001 |
nathanw | file raidframevar.h was added on branch nathanw_sa on 2001-10-22 20:41:32 +0000
|
1.1.2.2 |
| 11-Oct-2001 |
fvdl | Catch up with -current. Fix some bogons in the sparc64 kbd/ms attach code. cd18xx conversion provided by mrg.
|
1.1.2.1 |
| 04-Oct-2001 |
fvdl | file raidframevar.h was added on branch thorpej-devvp on 2001-10-11 00:02:15 +0000
|
1.3.2.4 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.3.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.3.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.3.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.6.2.1 |
| 28-Jun-2004 |
tron | Pull up revision 1.7 (requested by oster in ticket #563): fix const'ificication, gcc-3.4 will notice it
|
1.7.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.7.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.8.4.2 |
| 21-Jan-2008 |
yamt | sync with head
|
1.8.4.1 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.9.18.1 |
| 08-Sep-2006 |
riz | Pull up following revision(s) (requested by oster in ticket #122): sys/dev/raidframe/raidframevar.h: revision 1.10 Per a suggestion from Manuel, make numBlocks and partitionSize 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.
|
1.9.8.1 |
| 14-Sep-2006 |
yamt | sync with head.
|
1.9.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.10.42.1 |
| 08-Jan-2008 |
bouyer | Sync with HEAD
|
1.10.34.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.10.28.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.11.10.2 |
| 11-Mar-2010 |
yamt | sync with head
|
1.11.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.11.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.11.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.12.18.1 |
| 21-Apr-2010 |
matt | sync to netbsd-5
|
1.12.10.4 |
| 20-Nov-2014 |
sborrill | Pull up the following revisions(s) (requested by oster in ticket #1933): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 via patch
Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. Fixes PR kern/49244.
|
1.12.10.3 |
| 13-Jun-2012 |
sborrill | branches: 1.12.10.3.2; Pull up the following revisions(s) (requested by mrg in ticket #1774): sbin/raidctl/raidctl.c: revision 1.52 sys/dev/raidframe/raidframevar.h: revision 1.15 sys/dev/raidframe/rf_copyback.c: revision 1.45 sys/dev/raidframe/rf_disks.c: revision 1.78 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.282,1.284 sys/dev/raidframe/rf_reconstruct.c: revision 1.111
Fix garbage values in partitionSizeHi with RAID array > 2TB. Stops the check against rf_component_label_partitionsize() failing and stopping auto-configure.
|
1.12.10.2 |
| 21-Nov-2010 |
riz | Pull up following revision(s) (requested by mrg in ticket #1468): sys/dev/raidframe/rf_disks.c: revision 1.74 sys/dev/raidframe/raidframevar.h: revision 1.14 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.275 sys/dev/raidframe/rf_copyback.c: revision 1.43 sys/dev/raidframe/rf_reconstruct.c: revision 1.109 add support for >2TB raid devices. - - add two new members to the component label: u_int numBlocksHi u_int partitionSizeHi and store the top 32 bits of the real number of blocks and partition size. modify rf_print_component_label(), rf_does_it_fit(), rf_AutoConfigureDisks() and rf_ReconstructFailedDiskBasic(). - - call disk_blocksize() after disk_attach() [ from mlelstv ] - - shift the block number relative to DEV_BSHIFT in raidstart() and InitBP() so that accesses work for non 512-byte devices. [ from mlelstv ] - - update rf_getdisksize() to use the new getdisksize() [ from mlelstv. this part needs a separate change for netbsd-5. ] reviewed by: oster, christos and darrenr
|
1.12.10.1 |
| 10-Dec-2009 |
snj | branches: 1.12.10.1.2; Pull up following revision(s) (requested by tron in ticket #1187): sbin/raidctl/raidctl.8: revisions 1.57-1.59 via patch sbin/raidctl/raidctl.c: revision 1.42 via patch sys/dev/raidframe/files.raidframe: revision 1.8 via patch sys/dev/raidframe/rf_copyback.c: revision 1.42 via patch sys/dev/raidframe/rf_disks.c: revision 1.72 via patch sys/dev/raidframe/rf_driver.c: revision 1.122 via patch sys/dev/raidframe/rf_engine.c: revision 1.40 via patch sys/dev/raidframe/rf_kintf.h: revision 1.21 via patch sys/dev/raidframe/rf_netbsdkintf.c: revision 1.269 via patch sys/dev/raidframe/rf_paritymap.c: revisions 1.1-1.3 via patch sys/dev/raidframe/rf_paritymap.h: revision 1.1 via patch sys/dev/raidframe/rf_parityscan.c: revision 1.33 via patch sys/dev/raidframe/rf_parityscan.h: revision 1.8 via patch sys/dev/raidframe/rf_raid.h: revision 1.38 via patch sys/dev/raidframe/rf_reconstruct.c: revision 1.108 via patch sys/dev/raidframe/rf_states.c: revision 1.44 via patch sys/dev/raidframe/raidframeio.h: revision 1.6 via patch sys/dev/raidframe/raidframevar.h: revision 1.13 via patch Pull up the RAIDframe parity map Summer Of Code project. 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.
|
1.12.10.3.2.1 |
| 20-Nov-2014 |
sborrill | Pull up the following revisions(s) (requested by oster in ticket #1933): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 via patch
Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. Fixes PR kern/49244.
|
1.12.10.1.2.1 |
| 20-Nov-2014 |
sborrill | Pull up the following revisions(s) (requested by oster in ticket #1933): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 via patch
Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. Fixes PR kern/49244.
|
1.13.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.13.2.1 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.14.4.1 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.14.2.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.15.24.1 |
| 02-Dec-2014 |
snj | Pull up following revision(s) (requested by oster in ticket #1194): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. The issue was that a component was being marked as a used_spare when the rebuild started, not when the rebuild was actually finished. Marking it as a used_spare meant that the component label on the spare was being updated such that after a reboot the component would be considered up-to-date, regardless of whether the rebuild actually completed! This fix includes: 1) Add an additional state "rf_ds_rebuilding_spare" which is used to denote that a spare is currently being rebuilt from the live components. 2) Update the comments on the disk states, which were out-of-sync with reality. 3) When rebuilding to a spare component, that spare now enters the state rf_ds_rebuilding_spare instead of the state rf_ds_used_spare. 4) When the rebuild is actually complete then the spare component enters the rf_ds_used_spare state. rf_ds_used_spare is now used exclusively for the case where the rebuilding to the spare has completed successfully. XXX: Someday we need to teach raidctl(8) about this new state, and take out the backwards compatibility code in rf_netbsdkintf.c (see RAIDFRAME_GET_INFO in raidioctl()). For today, this fix needs to be generic enough that it can get backported without major grief. XXX: Needs pullup to netbsd-5*, netbsd-6*, and netbsd-7 Fixes PR#49244.
|
1.15.18.1 |
| 18-May-2014 |
rmind | sync with head
|
1.15.16.1 |
| 02-Dec-2014 |
snj | Pull up following revision(s) (requested by oster in ticket #1194): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. The issue was that a component was being marked as a used_spare when the rebuild started, not when the rebuild was actually finished. Marking it as a used_spare meant that the component label on the spare was being updated such that after a reboot the component would be considered up-to-date, regardless of whether the rebuild actually completed! This fix includes: 1) Add an additional state "rf_ds_rebuilding_spare" which is used to denote that a spare is currently being rebuilt from the live components. 2) Update the comments on the disk states, which were out-of-sync with reality. 3) When rebuilding to a spare component, that spare now enters the state rf_ds_rebuilding_spare instead of the state rf_ds_used_spare. 4) When the rebuild is actually complete then the spare component enters the rf_ds_used_spare state. rf_ds_used_spare is now used exclusively for the case where the rebuilding to the spare has completed successfully. XXX: Someday we need to teach raidctl(8) about this new state, and take out the backwards compatibility code in rf_netbsdkintf.c (see RAIDFRAME_GET_INFO in raidioctl()). For today, this fix needs to be generic enough that it can get backported without major grief. XXX: Needs pullup to netbsd-5*, netbsd-6*, and netbsd-7 Fixes PR#49244.
|
1.15.14.2 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.15.14.1 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.15.10.1 |
| 02-Dec-2014 |
snj | Pull up following revision(s) (requested by oster in ticket #1194): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. The issue was that a component was being marked as a used_spare when the rebuild started, not when the rebuild was actually finished. Marking it as a used_spare meant that the component label on the spare was being updated such that after a reboot the component would be considered up-to-date, regardless of whether the rebuild actually completed! This fix includes: 1) Add an additional state "rf_ds_rebuilding_spare" which is used to denote that a spare is currently being rebuilt from the live components. 2) Update the comments on the disk states, which were out-of-sync with reality. 3) When rebuilding to a spare component, that spare now enters the state rf_ds_rebuilding_spare instead of the state rf_ds_used_spare. 4) When the rebuild is actually complete then the spare component enters the rf_ds_used_spare state. rf_ds_used_spare is now used exclusively for the case where the rebuilding to the spare has completed successfully. XXX: Someday we need to teach raidctl(8) about this new state, and take out the backwards compatibility code in rf_netbsdkintf.c (see RAIDFRAME_GET_INFO in raidioctl()). For today, this fix needs to be generic enough that it can get backported without major grief. XXX: Needs pullup to netbsd-5*, netbsd-6*, and netbsd-7 Fixes PR#49244.
|
1.15.4.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.16.4.1 |
| 18-Nov-2014 |
snj | Pull up following revision(s) (requested by oster in ticket #243): sys/dev/raidframe/raidframevar.h: revision 1.17 sys/dev/raidframe/rf_netbsdkintf.c: revision 1.316 sys/dev/raidframe/rf_reconstruct.c: revision 1.121 Fix a long-standing bug related to rebooting while a reconstruct-to-spare is underway but not yet complete. The issue was that a component was being marked as a used_spare when the rebuild started, not when the rebuild was actually finished. Marking it as a used_spare meant that the component label on the spare was being updated such that after a reboot the component would be considered up-to-date, regardless of whether the rebuild actually completed! This fix includes: 1) Add an additional state "rf_ds_rebuilding_spare" which is used to denote that a spare is currently being rebuilt from the live components. 2) Update the comments on the disk states, which were out-of-sync with reality. 3) When rebuilding to a spare component, that spare now enters the state rf_ds_rebuilding_spare instead of the state rf_ds_used_spare. 4) When the rebuild is actually complete then the spare component enters the rf_ds_used_spare state. rf_ds_used_spare is now used exclusively for the case where the rebuilding to the spare has completed successfully. XXX: Someday we need to teach raidctl(8) about this new state, and take out the backwards compatibility code in rf_netbsdkintf.c (see RAIDFRAME_GET_INFO in raidioctl()). For today, this fix needs to be generic enough that it can get backported without major grief. XXX: Needs pullup to netbsd-5*, netbsd-6*, and netbsd-7 Fixes PR#49244.
|
1.18.2.1 |
| 22-Apr-2018 |
pgoyette | Sync with HEAD
|
1.19.2.1 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.21.18.1 |
| 05-Aug-2021 |
thorpej | Sync w/ HEAD.
|