summaryrefslogtreecommitdiffstats
path: root/kernel/irq
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2019-09-09 16:30:02 +1000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-05 13:14:16 +0200
commitc959aebdc3135b599384478bbcfc96e2302f435d (patch)
treee78f284e57a2878a3b8d34ef7397773fab138f25 /kernel/irq
parentcb2daf3e8cef34dfcccf390e64e7f7747aaf48f2 (diff)
downloadlinux-stable-c959aebdc3135b599384478bbcfc96e2302f435d.tar.gz
linux-stable-c959aebdc3135b599384478bbcfc96e2302f435d.tar.bz2
linux-stable-c959aebdc3135b599384478bbcfc96e2302f435d.zip
md/raid0: avoid RAID0 data corruption due to layout confusion.
[ Upstream commit c84a1372df929033cb1a0441fb57bd3932f39ac9 ] If the drives in a RAID0 are not all the same size, the array is divided into zones. The first zone covers all drives, to the size of the smallest. The second zone covers all drives larger than the smallest, up to the size of the second smallest - etc. A change in Linux 3.14 unintentionally changed the layout for the second and subsequent zones. All the correct data is still stored, but each chunk may be assigned to a different device than in pre-3.14 kernels. This can lead to data corruption. It is not possible to determine what layout to use - it depends which kernel the data was written by. So we add a module parameter to allow the old (0) or new (1) layout to be specified, and refused to assemble an affected array if that parameter is not set. Fixes: 20d0189b1012 ("block: Introduce new bio_split()") cc: stable@vger.kernel.org (3.14+) Acked-by: Guoqing Jiang <guoqing.jiang@cloud.ionos.com> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Song Liu <songliubraving@fb.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/irq')
0 files changed, 0 insertions, 0 deletions