Dan Williams
c337869d95
md: do not compute parity unless it is on a failed drive
...
If a block is computed (rather than read) then a check/repair operation
may be lead to believe that the data on disk is correct, when infact it
isn't. So only compute blocks for failed devices.
This issue has been around since at least 2.6.12, but has become harder to
hit in recent kernels since most reads bypass the cache.
echo repair > /sys/block/mdN/md/sync_action will set the parity blocks to the
correct state.
Cc: <stable@kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-06-06 11:29:08 -07: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_list macro renaming
2007-10-20 02:01:11 +01:00
dm-bio-record.h
dm-crypt.c
dm crypt: fix ctx pending
2008-03-28 14:45:22 -07:00
dm-delay.c
dm: bio_list macro renaming
2007-10-20 02:01:11 +01:00
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: use kzalloc
2007-10-20 02:01:07 +01:00
dm-hw-handler.h
dm mpath: add retry pg init
2007-10-20 02:01:18 +01:00
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: use kzalloc
2007-10-20 02:01:07 +01:00
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: use kzalloc
2007-10-20 02:01:07 +01:00
dm-uevent.c
md: replace remaining __FUNCTION__ occurrences
2008-04-28 08:58:42 -07:00
dm-uevent.h
dm: uevent generate events
2007-10-20 02:01:26 +01:00
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
md: do not compute parity unless it is on a failed drive
2008-06-06 11:29:08 -07: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
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6recov.c
raid6sse1.c
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6sse2.c
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid6x86.h
x86 merge fallout: uml
2007-10-29 07:41:32 -07:00
raid10.c
md: restart recovery cleanly after device failure.
2008-05-24 09:56:10 -07:00
unroll.pl