NeilBrown
dd00a99e7a
md: avoid a possibility that a read error can wrongly propagate through md/raid1 to a filesystem.
...
When a raid1 has only one working drive, we want read error to propagate up
to the filesystem as there is no point failing the last drive in an array.
Currently the code perform this check is racy. If a write and a read a
both submitted to a device on a 2-drive raid1, and the write fails followed
by the read failing, the read will see that there is only one working drive
and will pass the failure up, even though the one working drive is actually
the *other* one.
So, tighten up the locking.
Signed-off-by: Neil Brown <neilb@suse.de>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-10 09:26:53 -07:00
..
raid6test
.gitignore
bitmap.c
Remove do_sync_file_range()
2007-05-08 11:15:04 -07:00
dm-bio-list.h
dm: bio list helpers
2007-05-09 12:30:47 -07:00
dm-bio-record.h
dm-crypt.c
dm crypt: add null iv
2007-05-09 12:30:46 -07:00
dm-delay.c
dm: delay target
2007-05-09 12:30:47 -07:00
dm-emc.c
[PATCH] struct path: rename DM's struct path
2006-12-08 08:28:40 -08:00
dm-exception-store.c
dm exception store: update dm io interface
2007-05-09 12:30:47 -07:00
dm-hw-handler.c
dm-hw-handler.h
dm mpath: log device name
2007-05-09 12:30:46 -07:00
dm-io.c
dm io: remove old interface
2007-05-09 12:30:47 -07:00
dm-io.h
dm io: remove old interface
2007-05-09 12:30:47 -07:00
dm-ioctl.c
[PATCH] mark struct file_operations const 4
2007-02-12 09:48:45 -08:00
dm-linear.c
[PATCH] dm: map and endio symbolic return codes
2006-12-08 08:29:09 -08:00
dm-log.c
dm log: fix resume failed log device
2007-05-09 12:30:48 -07:00
dm-log.h
[PATCH] dm: log: rename complete_resync_work
2006-12-08 08:29:09 -08:00
dm-mpath.c
dm mpath: log device name
2007-05-09 12:30:46 -07:00
dm-mpath.h
[PATCH] struct path: rename DM's struct path
2006-12-08 08:28:40 -08:00
dm-path-selector.c
dm-path-selector.h
[PATCH] struct path: rename DM's struct path
2006-12-08 08:28:40 -08:00
dm-raid1.c
dm raid1: switch rh_in_sync to blocking in do_reads
2007-05-09 12:30:48 -07:00
dm-round-robin.c
[PATCH] struct path: rename DM's struct path
2006-12-08 08:28:40 -08:00
dm-snap.c
[PATCH] make drivers/md/dm-snap.c:ksnapd static
2006-12-08 08:29:09 -08:00
dm-snap.h
dm-stripe.c
[PATCH] dm: map and endio symbolic return codes
2006-12-08 08:29:09 -08:00
dm-table.c
dm: allow offline devices
2007-05-09 12:30:47 -07:00
dm-target.c
dm-zero.c
[PATCH] dm: map and endio symbolic return codes
2006-12-08 08:29:09 -08:00
dm.c
dm mpath: log device name
2007-05-09 12:30:46 -07:00
dm.h
[PATCH] dm: suspend: add noflush pushback
2006-12-08 08:29:09 -08:00
faulty.c
[PATCH] md: Don't assume that READ==0 and WRITE==1 - use the names explicitly
2006-12-13 09:05:48 -08:00
Kconfig
dm: delay target
2007-05-09 12:30:47 -07:00
kcopyd.c
dm kcopyd: update dm io interface
2007-05-09 12:30:47 -07:00
kcopyd.h
linear.c
[PATCH] fix read past end of array in md/linear.c
2007-03-16 19:25:03 -07:00
Makefile
dm: delay target
2007-05-09 12:30:47 -07:00
md.c
Revert "md: improve partition detection in md array"
2007-05-09 18:51:36 -07:00
mktables.c
multipath.c
raid0.c
raid1.c
md: avoid a possibility that a read error can wrongly propagate through md/raid1 to a filesystem.
2007-05-10 09:26:53 -07:00
raid5.c
Revert "md: improve partition detection in md array"
2007-05-09 18:51:36 -07:00
raid6.h
raid6algos.c
raid6altivec.uc
raid6int.uc
raid6mmx.c
[PATCH] md: RAID6: clean up CPUID and FPU enter/exit code
2007-03-01 14:53:36 -08:00
raid6recov.c
raid6sse1.c
[PATCH] md: RAID6: clean up CPUID and FPU enter/exit code
2007-03-01 14:53:36 -08:00
raid6sse2.c
[PATCH] md: RAID6: clean up CPUID and FPU enter/exit code
2007-03-01 14:53:36 -08:00
raid6x86.h
[PATCH] md: RAID6: clean up CPUID and FPU enter/exit code
2007-03-01 14:53:36 -08:00
raid10.c
[PATCH] md: fix raid10 recovery problem.
2007-03-01 14:53:36 -08:00
unroll.pl
xor.c