]> git.ipfire.org Git - thirdparty/mdadm.git/commit - super-intel.c
mdmon: record sync_completed directly to the metadata
authorDan Williams <dan.j.williams@intel.com>
Wed, 16 Jun 2010 01:41:57 +0000 (18:41 -0700)
committerDan Williams <dan.j.williams@intel.com>
Wed, 16 Jun 2010 01:41:57 +0000 (18:41 -0700)
commit4f0a7acc9a0a93d39b66b29e374f9a5edd173047
tree5d4b7f9ff2453cdaa778b248effdba4354adbd79
parent0d80bb2f97e876379fb0ba732e8e97894ebe3de9
mdmon: record sync_completed directly to the metadata

When sync_action is idle mdmon takes the latest value of md/resync_start
or md/<dev>/recovery_start to record the resync/rebuild checkpoint in
the metadata.  However, now that mdmon is reading sync_completed there
is no longer a need to wait for, or force an idle event to take a
checkpoint.

Simply update the forward progress of ->last_checkpoint at every wakeup
event and force it to be recorded at least every 1/16th array-size
interval.  It may be recorded more frequently if a ->set_array_state()
event occurs.

This also cleans up some confusion in handling the dual-rebuild case.
If more than one spare has been activated the kernel starts the rebuild
at the lowest recovery offset, so we do not need to worry about
min_recovery_start().

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
monitor.c
super-intel.c