linux/drivers
James Bottomley 7443d2d252 SCSI: Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 I/O error
commit 77a4229719 upstream.

There's nastyness in the way we currently handle barriers (and
discards): They're effectively filesystem commands, but they get
processed as BLOCK_PC commands.  Unfortunately BLOCK_PC commands are
taken by SCSI to be SG_IO commands and the issuer expects to see and
handle any returned errors, however trivial.  This leads to a huge
problem, because the block layer doesn't expect this to happen and any
trivially retryable error on a barrier causes an immediate I/O error
to the filesystem.

The only real way to hack around this is to take the usual class of
offending errors (unit attentions) and make them all retryable in the
case of a REQ_HARDBARRIER.  A correct fix would involve a rework of
the entire block and SCSI submit system, and so is out of scope for a
quick fix.

Cc: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-05-12 14:57:17 -07:00
..
accessibility
acpi ACPI: sleep: init_set_sci_en_on_resume for Dell Studio 155x 2010-05-12 14:57:15 -07:00
amba
ata libata: ensure NCQ error result taskfile is fully initialized before returning it via qc->result_tf. 2010-05-12 14:57:00 -07:00
atm
auxdisplay
base Driver-Core: devtmpfs - reset inode permissions before unlinking 2010-03-15 08:49:53 -07:00
block cciss: Make cciss_seq_show handle holes in the h->drv[] array 2010-02-23 07:37:49 -08:00
bluetooth Bluetooth: Prevent ill-timed autosuspend in USB driver 2010-01-06 15:03:43 -08:00
cdrom
char x86, k8 nb: Fix boot crash: enable k8_northbridges unconditionally on AMD systems 2010-05-12 14:57:06 -07:00
clocksource clocksource: Fix up a registration/IRQ race in the sh drivers. 2010-03-15 08:49:44 -07:00
connector connector: Delete buggy notification code. 2010-02-09 04:50:59 -08:00
cpufreq [CPUFREQ] Fix stale cpufreq_cpu_governor pointer 2009-11-17 23:15:04 -05:00
cpuidle cpuidle: Fix incorrect optimization 2010-05-12 14:57:16 -07:00
crypto crypto: padlock-sha - Add import/export support 2010-02-23 07:37:54 -08:00
dca
dio
dma ioat: fix infinite timeout checking in ioat2_quiesce 2010-02-23 07:37:49 -08:00
edac edac, mce: Fix wrong mask and macro usage 2010-05-12 14:57:05 -07:00
eisa
firewire firewire: core: add_descriptor size check 2010-02-09 04:50:52 -08:00
firmware DMI: allow omitting ident strings in DMI tables 2010-01-28 15:01:52 -08:00
gpio gpiolib: Actually set output state in wm831x_gpio_direction_output() 2010-03-15 08:49:57 -07:00
gpu drm/i915: fix tiling limits for i915 class hw v2 2010-05-12 14:57:10 -07:00
hid HID: fix oops in gyration_event() 2010-04-26 07:41:19 -07:00
hwmon hwmon: (sht15) Properly handle the case CONFIG_REGULATOR=n 2010-04-26 07:41:26 -07:00
i2c i2c: Fix probing of FSC hardware monitoring chips 2010-05-12 14:57:04 -07:00
ide slc90e66: fix UDMA handling 2009-12-18 14:05:04 -08:00
idle
ieee1394
ieee802154 ieee802154: dont leak skbs in ieee802154_fake_xmit() 2009-11-19 13:16:21 -08:00
infiniband IB/iser: Rewrite SG handling for RDMA logic 2010-04-26 07:41:36 -07:00
input Input: wacom - switch mode upon system resume 2010-04-26 07:41:34 -07:00
isdn gigaset: prune use of tty_buffer_request_room 2010-04-01 15:58:24 -07:00
leds leds-gpio: fix default state handling on OF platforms 2010-04-01 15:58:53 -07:00
lguest lguest: fix bug in setting guest GDT entry 2010-01-06 15:05:19 -08:00
macintosh macintosh/therm_adt746x: Fix sysfs attributes lifetime 2010-03-15 08:49:46 -07:00
mca
md md/raid6: Fix raid-6 read-error correction in degraded state 2010-05-12 14:57:15 -07:00
media V4L/DVB: budget: Oops: "BUG: unable to handle kernel NULL pointer dereference" 2010-05-12 14:57:15 -07:00
memstick
message mptspi: Fix for incorrect data underrun errata 2010-04-26 07:41:36 -07:00
mfd mfd: WM835x GPIO direction register is not locked 2010-01-22 15:18:18 -08:00
misc SCSI: enclosure: fix oops while iterating enclosure_status array 2010-01-25 10:49:37 -08:00
mmc s3cmci: initialize default platform data no_wprotect and no_detect with 1 2010-04-01 15:58:56 -07:00
mtd UBI: fix volume creation input checking 2010-02-09 04:50:45 -08:00
net bnx2: Fix lost MSI-X problem on 5709 NICs. 2010-05-12 14:57:14 -07:00
nubus
of
oprofile
parisc
parport
pci PCI: Ensure we re-enable devices on resume 2010-05-12 14:57:12 -07:00
pcmcia PCI/cardbus: Add a fixup hook and fix powerpc 2010-01-22 15:18:26 -08:00
platform eeepc-laptop: disable wireless hotplug for 1005PE 2010-04-26 07:41:23 -07:00
pnp
power
pps pps: events reporting fix up 2009-11-12 07:26:01 -08:00
ps3
rapidio
regulator regulator: Fix display of null constraints for regulators 2010-02-23 07:37:49 -08:00
rtc rtc-coh901331: fix braces in resume code 2010-03-15 08:50:14 -07:00
s390 dasd: remove strings from s390dbf 2010-02-23 07:37:54 -08:00
sbus
scsi SCSI: Retry commands with UNIT_ATTENTION sense codes to fix ext3/ext4 I/O error 2010-05-12 14:57:17 -07:00
serial serial: 8250_pnp - add Fujitsu Wacom device 2010-05-12 14:57:05 -07:00
sfi
sh
sn
spi SPI: spi_txx9: Fix bit rate calculation 2009-12-02 23:58:32 +00:00
ssb ssb: Fix range check in sprom write 2009-12-18 14:03:24 -08:00
staging Staging: hv: name network device ethX rather than sethX 2010-05-12 14:57:04 -07:00
tc
telephony
thermal
uio uio: pm_runtime_disable is needed if failed 2009-11-13 11:36:00 +09:00
usb USB: xhci: properly set endpoint context fields for periodic eps. 2010-05-12 14:57:03 -07:00
uwb
video backlight: mbp_nvidia_bl - add five more MacBook variants 2010-04-26 07:41:19 -07:00
virtio virtio: fix out of range array access 2010-04-01 15:58:18 -07:00
vlynq
w1 w1: w1 temp: fix negative termperature calculation 2010-05-12 14:57:00 -07:00
watchdog WATCHDOG: iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point DeviceIDs 2010-04-26 07:41:18 -07:00
xen xen: fix hang on suspend. 2010-01-18 10:19:44 -08:00
zorro
Kconfig
Makefile virtio: initialize earlier 2010-05-12 14:57:15 -07:00