android_kernel_xiaomi_sm7250/drivers/md
Neil Brown 8c2e870a62 Ensure interrupted recovery completed properly (v1 metadata plus bitmap)
If, while assembling an array, we find a device which is not fully
in-sync with the array, it is important to set the "fullsync" flags.
This is an exact analog to the setting of this flag in hot_add_disk
methods.

Currently, only v1.x metadata supports having devices in an array
which are not fully in-sync (it keep track of how in sync they are).
The 'fullsync' flag only makes a difference when a write-intent bitmap
is being used.  In this case it tells recovery to ignore the bitmap
and recovery all blocks.

This fix is already in place for raid1, but not raid5/6 or raid10.

So without this fix, a raid1 ir raid4/5/6 array with version 1.x
metadata and a write intent bitmaps, that is stopped in the middle
of a recovery, will appear to complete the recovery instantly
after it is reassembled, but the recovery will not be correct.

If you might have an array like that, issueing
   echo repair > /sys/block/mdXX/md/sync_action

will make sure recovery completes properly.

Cc: <stable@kernel.org>
Signed-off-by: Neil Brown <neilb@suse.de>
2008-06-28 08:30:52 +10:00
..
raid6test md: raid6: clean up the style of raid6test/test.c 2008-02-06 10:41:18 -08:00
.gitignore
bitmap.c md: kill file_path wrapper 2008-05-24 09:56:09 -07:00
dm-bio-list.h
dm-bio-record.h
dm-crypt.c dm crypt: fix ctx pending 2008-03-28 14:45:22 -07:00
dm-delay.c
dm-emc.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-exception-store.c dm: move include files 2008-04-25 13:26:55 +01:00
dm-hw-handler.c
dm-hw-handler.h
dm-io.c dm: unplug queues in threads 2008-04-25 13:26:57 +01:00
dm-ioctl.c dm ioctl: use uninitialized_var 2008-02-08 02:10:16 +00:00
dm-kcopyd.c dm: unplug queues in threads 2008-04-25 13:26:57 +01:00
dm-linear.c
dm-log.c dm: move include files 2008-04-25 13:26:55 +01:00
dm-mpath-hp-sw.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-mpath-rdac.c block: no need to initialize rq->cmd with blk_get_request 2008-04-29 14:48:55 +02:00
dm-mpath.c dm mpath: add missing static 2008-02-08 02:10:35 +00:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-raid1.c dm: unplug queues in threads 2008-04-25 13:26:57 +01:00
dm-round-robin.c
dm-snap.c dm: move include files 2008-04-25 13:26:55 +01:00
dm-snap.h dm kcopyd: clean interface 2008-04-25 13:26:44 +01:00
dm-stripe.c dm: stripe enhanced status return 2008-02-08 02:11:24 +00:00
dm-table.c dm: use unlocked variants of queue flag check/set 2008-04-29 10:21:12 -07:00
dm-target.c
dm-uevent.c md: replace remaining __FUNCTION__ occurrences 2008-04-28 08:58:42 -07:00
dm-uevent.h
dm-zero.c
dm.c dm: remove md argument from specific_minor 2008-04-25 13:27:02 +01:00
dm.h dm: expose macros 2008-04-25 13:26:53 +01:00
faulty.c md: change ITERATE_RDEV to rdev_for_each 2008-02-06 10:41:19 -08:00
Kconfig dm: targets no longer experimental 2008-02-08 02:10:32 +00:00
linear.c Remove blkdev warning triggered by using md 2008-05-14 19:11:15 -07:00
Makefile dm: move include files 2008-04-25 13:26:55 +01:00
md.c md: fix uninitialized use of mddev->recovery_wait 2008-06-06 11:29:08 -07:00
mktables.c md: raid6: Fix mktable.c 2008-02-06 10:41:18 -08:00
multipath.c md: restart recovery cleanly after device failure. 2008-05-24 09:56:10 -07:00
raid0.c Remove blkdev warning triggered by using md 2008-05-14 19:11:15 -07:00
raid1.c md: restart recovery cleanly after device failure. 2008-05-24 09:56:10 -07:00
raid5.c Ensure interrupted recovery completed properly (v1 metadata plus bitmap) 2008-06-28 08:30:52 +10:00
raid6.h
raid6algos.c drivers/md: use time_before, time_before_eq, etc 2008-04-28 08:58:42 -07:00
raid6altivec.uc
raid6int.uc
raid6mmx.c
raid6recov.c
raid6sse1.c
raid6sse2.c
raid6x86.h
raid10.c Ensure interrupted recovery completed properly (v1 metadata plus bitmap) 2008-06-28 08:30:52 +10:00
unroll.pl