kernel-ark/drivers/md
NeilBrown 97e4f42d62 md: occasionally checkpoint drive recovery to reduce duplicate effort after a crash
Version 1.x metadata has the ability to record the status of a
partially completed drive recovery.
However we only update that record on a clean shutdown.
It would be nice to update it on unclean shutdowns too, particularly
when using a bitmap that removes much to the 'sync' effort after an
unclean shutdown.

One complication with checkpointing recovery is that we only know
where we are up to in terms of IO requests started, not which ones
have completed.  And we need to know what has completed to record
how much is recovered.  So occasionally pause the recovery until all
submitted requests are completed, then update the record of where
we are up to.

When we have a bitmap, we already do that pause occasionally to keep
the bitmap up-to-date.  So enhance that code to record the recovery
offset and schedule a superblock update.
And when there is no bitmap, just pause 16 times during the resync to
do a checkpoint.
'16' is a fairly arbitrary number.  But we don't really have any good
way to judge how often is acceptable, and it seems like a reasonable
number for now.


Signed-off-by: NeilBrown <neilb@suse.de>
2009-03-31 14:33:13 +11:00
..
raid6test
.gitignore
bitmap.c md: occasionally checkpoint drive recovery to reduce duplicate effort after a crash 2009-03-31 14:33:13 +11:00
bitmap.h md: move headers out of include/linux/raid/ 2009-03-31 14:27:03 +11:00
dm-bio-list.h
dm-bio-record.h
dm-crypt.c dm: consolidate target deregistration error handling 2009-01-06 03:04:58 +00:00
dm-delay.c dm: consolidate target deregistration error handling 2009-01-06 03:04:58 +00:00
dm-exception-store.c dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-exception-store.h dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-io.c block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
dm-ioctl.c dm table: rework reference counting 2009-01-06 03:05:10 +00:00
dm-kcopyd.c block: fix bad definition of BIO_RW_SYNC 2009-02-18 10:32:00 +01:00
dm-linear.c dm: support barriers on simple devices 2009-01-06 03:05:09 +00:00
dm-log.c dm log: ensure log bitmap fits on log device 2009-01-06 03:05:02 +00:00
dm-mpath.c dm mpath: move trigger_event to system workqueue 2009-01-06 03:05:13 +00:00
dm-mpath.h dm mpath: remove is_active from struct dm_path 2008-10-10 13:36:58 +01:00
dm-path-selector.c dm: remove dm header from targets 2008-10-21 17:44:59 +01:00
dm-path-selector.h
dm-raid1.c dm log: move region_size validation 2009-01-06 03:05:01 +00:00
dm-region-hash.c dm raid1: separate region_hash interface part1 2008-10-21 17:45:06 +01:00
dm-round-robin.c dm: remove dm header from targets 2008-10-21 17:44:59 +01:00
dm-snap-persistent.c dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-snap-transient.c dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-snap.c dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-snap.h dm snapshot: extend exception store functions 2009-01-06 03:05:19 +00:00
dm-stripe.c dm: consolidate target deregistration error handling 2009-01-06 03:04:58 +00:00
dm-sysfs.c dm: add name and uuid to sysfs 2009-01-06 03:05:12 +00:00
dm-table.c dm table: rework reference counting 2009-01-06 03:05:10 +00:00
dm-target.c dm: consolidate target deregistration error handling 2009-01-06 03:04:58 +00:00
dm-uevent.c
dm-uevent.h
dm-zero.c dm: consolidate target deregistration error handling 2009-01-06 03:04:58 +00:00
dm.c dm: add name and uuid to sysfs 2009-01-06 03:05:12 +00:00
dm.h dm: add name and uuid to sysfs 2009-01-06 03:05:12 +00:00
faulty.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
Kconfig raid, fastboot: hide RAID autodetect option if MD is compiled as a module 2008-10-12 08:25:14 -07:00
linear.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
linear.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
Makefile cleanup drivers/md/Makefile 2009-03-31 14:27:02 +11:00
md.c md: occasionally checkpoint drive recovery to reduce duplicate effort after a crash 2009-03-31 14:33:13 +11:00
md.h md: occasionally checkpoint drive recovery to reduce duplicate effort after a crash 2009-03-31 14:33:13 +11:00
mktables.c
multipath.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
multipath.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
raid0.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
raid0.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
raid1.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
raid1.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
raid5.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
raid5.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
raid6.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
raid6algos.c
raid6altivec.uc
raid6int.uc
raid6mmx.c
raid6recov.c
raid6sse1.c
raid6sse2.c
raid6x86.h
raid10.c md: move md_k.h from include/linux/raid/ to drivers/md/ 2009-03-31 14:33:13 +11:00
raid10.h md: move lots of #include lines out of .h files and into .c 2009-03-31 14:33:13 +11:00
unroll.pl