[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/49244 CVS commit: [netbsd-7] src/sys/dev/raidframe
The following reply was made to PR kern/49244; it has been noted by GNATS.
From: "Soren Jacobsen" <snj%netbsd.org@localhost>
Subject: PR/49244 CVS commit: [netbsd-7] src/sys/dev/raidframe
Date: Tue, 18 Nov 2014 18:03:10 +0000
Module Name: src
Committed By: snj
Date: Tue Nov 18 18:03:10 UTC 2014
src/sys/dev/raidframe [netbsd-7]: raidframevar.h rf_netbsdkintf.c
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
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
2) Update the comments on the disk states, which were out-of-sync
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
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
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r184.108.40.206 src/sys/dev/raidframe/raidframevar.h
cvs rdiff -u -r1.312.2.2 -r1.312.2.3 src/sys/dev/raidframe/rf_netbsdkintf.c
cvs rdiff -u -r1.120 -r220.127.116.11 src/sys/dev/raidframe/rf_reconstruct.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Main Index |
Thread Index |