https://github.com/torvalds/linux
Revision ab0fd1debe730ec9998678a0c53caefbd121ed10 authored by Tejun Heo on 03 July 2009, 10:56:18 UTC, committed by Jens Axboe on 03 July 2009, 19:06:45 UTC
Block layer used to merge requests and bios with different failfast settings. This caused regular IOs to fail prematurely when they were merged into failfast requests for readahead. Niel Lambrechts could trigger the problem semi-reliably on ext4 when resuming from STR. ext4 uses readahead when reading inodes and combined with the deterministic extra SATA PHY exception cycle during resume on the specific configuration, non-readahead inode read would fail causing ext4 errors. Please read the following thread for details. http://lkml.org/lkml/2009/5/23/21 This patch makes block layer reject merging if the failfast settings don't match. This is correct but likely to lower IO performance by preventing regular IOs from mingling into surrounding readahead requests. Changes to allow such mixed merges and handle errors correctly will be added later. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Niel Lambrechts <niel.lambrechts@gmail.com> Cc: Theodore Tso <tytso@mit.edu> Signed-off-by: Jens Axboe <axboe@carl.(none)>
1 parent b59e64d
Tip revision: ab0fd1debe730ec9998678a0c53caefbd121ed10 authored by Tejun Heo on 03 July 2009, 10:56:18 UTC
block: don't merge requests of different failfast settings
block: don't merge requests of different failfast settings
Tip revision: ab0fd1d
File | Mode | Size |
---|---|---|
drivers | ||
include | ||
kernel | ||
os-Linux | ||
scripts | ||
sys-i386 | ||
sys-ia64 | ||
sys-ppc | ||
sys-x86_64 | ||
Kconfig.char | -rw-r--r-- | 8.5 KB |
Kconfig.common | -rw-r--r-- | 879 bytes |
Kconfig.debug | -rw-r--r-- | 1.0 KB |
Kconfig.net | -rw-r--r-- | 8.5 KB |
Kconfig.rest | -rw-r--r-- | 629 bytes |
Kconfig.um | -rw-r--r-- | 5.1 KB |
Kconfig.x86 | -rw-r--r-- | 1.0 KB |
Makefile | -rw-r--r-- | 5.0 KB |
Makefile-i386 | -rw-r--r-- | 1.4 KB |
Makefile-ia64 | -rw-r--r-- | 32 bytes |
Makefile-os-Linux | -rw-r--r-- | 235 bytes |
Makefile-ppc | -rw-r--r-- | 203 bytes |
Makefile-skas | -rw-r--r-- | 290 bytes |
Makefile-x86_64 | -rw-r--r-- | 640 bytes |
defconfig | -rw-r--r-- | 14.9 KB |
Computing file changes ...