summaryrefslogtreecommitdiff
path: root/drivers/md/raid6sse1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2007-02-28 20:11:18 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-01 14:53:36 -0800
commit64a742bc61f9115b0bb270fa081e5b5b9c35dcd0 (patch)
tree3ed58984e5f2e6d3484c33fe7d6355658a6f2f15 /drivers/md/raid6sse1.c
parent5a243e0e97edce27c12f87354fd987526ba1ce95 (diff)
downloadkernel-common-64a742bc61f9115b0bb270fa081e5b5b9c35dcd0.tar.gz
kernel-common-64a742bc61f9115b0bb270fa081e5b5b9c35dcd0.tar.bz2
kernel-common-64a742bc61f9115b0bb270fa081e5b5b9c35dcd0.zip
[PATCH] md: fix raid10 recovery problem.
There are two errors that can lead to recovery problems with raid10 when used in 'far' more (not the default). Due to a '>' instead of '>=' the wrong block is located which would result in garbage being written to some random location, quite possible outside the range of the device, causing the newly reconstructed device to fail. The device size calculation had some rounding errors (it didn't round when it should) and so recovery would go a few blocks too far which would again cause a write to a random block address and probably a device error. The code for working with device sizes was fairly confused and spread out, so this has been tided up a bit. 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>
Diffstat (limited to 'drivers/md/raid6sse1.c')
0 files changed, 0 insertions, 0 deletions