linux/drivers/scsi
James Bottomley 4f5299ac4e [SCSI] scsi_lib: don't decrement busy counters when inserting commands
A bug was introduced by

commit b60af5b0ad
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Mon Nov 3 15:56:47 2008 -0500

    [SCSI] simplify scsi_io_completion()
 
because the simplification uses scsi_queue_insert().  The problem with
this function is that it expects to be called from the completion path
while the command is still outstanding, so it decrements the device
and host busy counts to do the requeue.  The problem is that
scsi_io_completion() is a path executed well after these counts have
*already* been decremented, leading to a double decrement if the
command goes down any error path leading to ACTION_DELAYED_RETRY.

The fix is to allow a private function __scsi_queue_insert() with a
flag to say whether the busy counters should be decremented.  This is
made static to scsi_lib.c to discourage other use.

Reported-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-01-05 08:54:11 -06:00
..
aacraid [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
aic7xxx [SCSI] aic7xxx: Take the LED out of diagnostic mode on PM resume 2008-10-23 11:42:16 -05:00
aic7xxx_old
aic94xx [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
arcmsr [SCSI] advansys, arcmsr, ipr, nsp32, qla1280, stex: use pci_ioremap_bar() 2008-12-29 11:24:11 -06:00
arm [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
cxgb3i [SCSI] cxgb3i: fix select/depend problem 2008-12-30 13:09:12 -06:00
device_handler [SCSI] scsi_dh_rdac: Add LSI vendor and product ids in rdac device list 2008-12-29 11:24:17 -06:00
dpt removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
fcoe [SCSI] fcoe: fix incorrect use of struct module 2008-12-30 13:08:37 -06:00
ibmvscsi [SCSI] ibmvscsi: Make max_requests module parameter more accurate 2009-01-02 10:59:57 -06:00
libfc [SCSI] libfc: A modular Fibre Channel library 2008-12-29 11:24:33 -06:00
libsas [SCSI] libsas: fix test for negative unsigned and typos 2009-01-02 12:16:38 -06:00
lpfc [SCSI] lpfc: Move a dereference below a NULL test 2009-01-02 10:59:38 -06:00
megaraid [SCSI] megaraid_sas: switch to block timeout 2008-12-01 11:15:55 -06:00
pcmcia Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2008-10-13 14:12:40 -07:00
qla2xxx [SCSI] qla2xxx: changes in multiq code 2008-12-29 11:24:35 -06:00
qla4xxx drivers: replace NIPQUAD() 2008-10-31 00:56:00 -07:00
sym53c8xx_2 block: unify request timeout handling 2008-10-09 08:56:13 +02:00
.gitignore
3w-9xxx.c [SCSI] 3w-9xxx: remove unnecessary local_irq_save/restore for scsi sg copy API 2008-10-23 11:42:18 -05:00
3w-9xxx.h [SCSI] 3w-9xxx: add MSI support and misc fixes 2008-07-26 15:15:00 -04:00
3w-xxxx.c [SCSI] 3w-xxxx: remove unnecessary local_irq_save/restore for scsi sg copy API 2008-10-23 11:42:17 -05:00
3w-xxxx.h
53c700.c [SCSI] Let scsi_cmnd->cmnd use request->cmd buffer 2008-05-02 10:18:22 -05:00
53c700.h
53c700.scr
53c700_d.h_shipped
a100u2w.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
a100u2w.h
a2091.c [SCSI] a2091, gvp11: kill warn_unused_result warnings 2009-01-02 12:16:18 -06:00
a2091.h
a3000.c [SCSI] WD33C93: let platform stub override no_sync/fast/dma_mode 2008-04-07 12:19:01 -05:00
a3000.h
a4000t.c
advansys.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
aha152x.c drivers/scsi: use nr_irqs 2008-10-16 16:52:06 +02:00
aha152x.h
aha1542.c [SCSI] aha1542: minor irq handler cleanups 2008-04-27 12:19:55 -05:00
aha1542.h
aha1740.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
aha1740.h
aic7xxx_old.c Remove pointless casts from void pointers 2008-02-06 10:41:01 -08:00
atari_NCR5380.c
atari_scsi.c m68k: Remove the broken Hades support 2008-10-14 10:23:27 -07:00
atari_scsi.h
atp870u.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
atp870u.h
BusLogic.c [SCSI] BusLogic: make FlashPoint support x86-32 only 2008-04-07 12:15:44 -05:00
BusLogic.h [SCSI] BusLogic: make FlashPoint support x86-32 only 2008-04-07 12:15:44 -05:00
bvme6000_scsi.c
ch.c [SCSI] add residual argument to scsi_execute and scsi_execute_req 2008-12-29 11:24:24 -06:00
constants.c [SCSI] scsi: add transport host byte errors (v3) 2008-10-13 09:28:48 -04:00
dc395x.c [SCSI] Remove random noop unchecked_isa_dma users 2008-04-07 12:15:40 -05:00
dc395x.h
dmx3191d.c
dpt_i2o.c [SCSI] dpt_i2o: fix transferred data length for scsi_set_resid() 2008-11-15 11:10:14 -06:00
dpti.h drivers/scsi/dpt_i2o.c: fix build on alpha 2008-05-08 10:46:56 -07:00
dtc.c
dtc.h
eata.c [SCSI] eata: fix the data buffer accessors conversion regression 2008-12-29 11:24:35 -06:00
eata_generic.h
eata_pio.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
eata_pio.h
esp_scsi.c [SCSI] esp_scsi: Use DIV_ROUND_UP 2008-12-29 11:24:14 -06:00
esp_scsi.h sparc: Kill SBUS DVMA layer. 2008-08-29 02:13:10 -07:00
fd_mcs.c
fdomain.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
fdomain.h
FlashPoint.c [SCSI] FlashPoint: fix off-by-one errors 2008-04-27 12:19:55 -05:00
g_NCR5380.c
g_NCR5380.h
g_NCR5380_mmio.c
gdth.c gdth section fixes 2008-11-30 10:03:36 -08:00
gdth.h block: unify request timeout handling 2008-10-09 08:56:13 +02:00
gdth_ioctl.h
gdth_proc.c block: unify request timeout handling 2008-10-09 08:56:13 +02:00
gdth_proc.h block: unify request timeout handling 2008-10-09 08:56:13 +02:00
gvp11.c [SCSI] a2091, gvp11: kill warn_unused_result warnings 2009-01-02 12:16:18 -06:00
gvp11.h
hosts.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
hptiop.c remove unnecessary <linux/hdreg.h> includes 2008-08-05 18:16:58 +02:00
hptiop.h
ibmmca.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
ide-scsi.c ide: replace the global ide_lock spinlock by per-hwgroup spinlocks (v2) 2008-12-29 20:27:31 +01:00
imm.c [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
imm.h
in2000.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
in2000.h
initio.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
initio.h [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
ipr.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
ipr.h [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
ips.c block: unify request timeout handling 2008-10-09 08:56:13 +02:00
ips.h removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
iscsi_tcp.c [SCSI] libiscsi_tcp: support padding offload 2008-12-29 11:24:23 -06:00
iscsi_tcp.h [SCSI] iscsi_tcp: hook iscsi_tcp into new libiscsi_tcp module 2008-12-29 11:24:22 -06:00
jazz_esp.c [SCSI] jazz_esp, sgiwd93, sni_53c710, sun3x_esp: fix platform driver hotplug/coldplug 2008-04-27 12:33:04 -05:00
Kconfig [SCSI] fcoe: fix configuration problems 2008-12-30 13:09:44 -06:00
lasi700.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
libiscsi.c [SCSI] libiscsi: handle init task failures. 2008-12-29 11:24:23 -06:00
libiscsi_tcp.c [SCSI] libiscsi_tcp: support padding offload 2008-12-29 11:24:23 -06:00
libsrp.c [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
mac53c94.c
mac53c94.h
mac_esp.c [SCSI] mac_esp: fix for quadras with two esp chips 2008-12-29 11:24:19 -06:00
mac_scsi.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
mac_scsi.h
Makefile [SCSI] cxgb3i: Add cxgb3i iSCSI driver. 2008-12-30 10:45:33 -06:00
megaraid.c [SCSI] megaraid: fix mega_internal_command oops 2008-11-05 12:40:23 -05:00
megaraid.h [SCSI] megaraid: fix mega_internal_command oops 2008-11-05 12:40:23 -05:00
mesh.c [SCSI] SCSI: remove dev->power.power_state from mesh driver 2008-06-05 09:23:44 -05:00
mesh.h
mvme16x_scsi.c
mvme147.c [SCSI] wd33c93: fix up cut and paste error 2008-04-07 12:19:07 -05:00
mvme147.h
mvsas.c [SCSI] mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003 2009-01-02 12:10:04 -06:00
ncr53c8xx.c block: unify request timeout handling 2008-10-09 08:56:13 +02:00
ncr53c8xx.h
NCR53c406a.c
NCR5380.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
NCR5380.h
NCR_D700.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32.c [SCSI] advansys, arcmsr, ipr, nsp32, qla1280, stex: use pci_ioremap_bar() 2008-12-29 11:24:11 -06:00
nsp32.h removed unused #include <linux/version.h>'s 2008-08-23 12:14:12 -07:00
nsp32_debug.c [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
nsp32_io.h
osst.c device create: scsi: convert device_create_drvdata to device_create 2008-10-16 09:24:44 -07:00
osst.h
osst_detect.h
osst_options.h
pas16.c
pas16.h
ppa.c [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
ppa.h
ps3rom.c [SCSI] ps3rom: use scsi_build_sense_buffer 2008-04-07 12:19:02 -05:00
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c [SCSI] advansys, arcmsr, ipr, nsp32, qla1280, stex: use pci_ioremap_bar() 2008-12-29 11:24:11 -06:00
qla1280.h
qlogicfas.c
qlogicfas408.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
qlogicfas408.h
qlogicpti.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-10-11 12:39:35 -07:00
qlogicpti.h qlogicpti: Convert to pure OF driver. 2008-08-29 02:14:46 -07:00
qlogicpti_asm.c
raid_class.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
script_asm.pl
scsi.c [SCSI] remove severly outdated comment in scsi_dispatch_cmd 2009-01-02 10:47:18 -06:00
scsi.h
scsi_debug.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_devinfo.c [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
scsi_error.c [SCSI] clean up scsi_times_out 2009-01-02 10:51:44 -06:00
scsi_ioctl.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_lib.c [SCSI] scsi_lib: don't decrement busy counters when inserting commands 2009-01-05 08:54:11 -06:00
scsi_lib_dma.c
scsi_logging.h
scsi_module.c
scsi_netlink.c [SCSI] fix netlink kernel-doc 2008-10-23 11:42:17 -05:00
scsi_priv.h [SCSI] modify scsi to handle new fail fast flags. 2008-10-13 09:28:52 -04:00
scsi_proc.c [SCSI] scsi_host_lookup: error returns and NULL pointers 2008-10-03 11:46:12 -05:00
scsi_sas_internal.h SCSI: convert struct class_device to struct device 2008-04-19 19:10:33 -07:00
scsi_scan.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_sysctl.c
scsi_sysfs.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_tgt_if.c scsi-tgt: BKL pushdown 2008-07-02 15:06:25 -06:00
scsi_tgt_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2008-10-10 10:53:26 -07:00
scsi_tgt_priv.h [SCSI] replace __FUNCTION__ with __func__ 2008-07-27 10:31:49 -04:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_transport_fc_internal.h
scsi_transport_iscsi.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_transport_sas.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_transport_spi.c [SCSI] scsi_transport_spi: fix the misuse of scsi_execute return value 2008-12-29 11:24:32 -06:00
scsi_transport_srp.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
scsi_transport_srp_internal.h
scsi_typedefs.h
scsi_wait_scan.c
scsicam.c
sd.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
sd.h [SCSI] sd: fix compile failure with CONFIG_BLK_DEV_INTEGRITY=n 2008-10-15 08:41:28 -04:00
sd_dif.c [SCSI] sd: Switch kernel printing level for DIF messages 2008-10-13 09:28:58 -04:00
ses.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
sg.c [SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE 2009-01-02 11:10:35 -06:00
sgiwd93.c [SCSI] sgiwd93: Fix compilation warning 2009-01-02 10:58:41 -06:00
sim710.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
sni_53c710.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
sr.c [SCSI] add residual argument to scsi_execute and scsi_execute_req 2008-12-29 11:24:24 -06:00
sr.h [SCSI] sr: fix test unit ready responses 2008-02-07 18:02:44 -06:00
sr_ioctl.c [SCSI] add residual argument to scsi_execute and scsi_execute_req 2008-12-29 11:24:24 -06:00
sr_vendor.c drivers/scsi/sr_vendor.c: use bcd2bin 2008-10-20 08:52:41 -07:00
st.c [SCSI] st: retry enlarge_buffer allocation 2009-01-02 12:06:52 -06:00
st.h [SCSI] st: remove unused frp_sg_current 2009-01-02 12:02:25 -06:00
st_options.h [SCSI] st: add option to use SILI in variable block reads 2008-04-07 12:15:39 -05:00
stex.c [SCSI] advansys, arcmsr, ipr, nsp32, qla1280, stex: use pci_ioremap_bar() 2008-12-29 11:24:11 -06:00
sun3_NCR5380.c
sun3_scsi.c
sun3_scsi.h
sun3_scsi_vme.c [SCSI] sun3_scsi_vme: add MODULE_LICENSE 2008-04-16 09:28:11 -05:00
sun3x_esp.c [SCSI] sun3x_esp: Convert && to || 2008-10-23 11:42:19 -05:00
sun_esp.c sparc: Annotate of_device_id arrays with const or __initdata. 2008-08-31 01:23:17 -07:00
sym53c416.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
sym53c416.h
t128.c
t128.h
tmscsim.c [SCSI] tmscsim: fix indentation and braces disagreement - add braces 2008-12-29 11:24:14 -06:00
tmscsim.h
u14-34f.c [SCSI] u14-34f: fix scsi_dma_map failure case 2008-12-29 11:24:14 -06:00
ultrastor.c scsi: fix integer as NULL pointer warnings 2008-04-28 17:31:13 -07:00
ultrastor.h
wd33c93.c [SCSI] WD33C93: let platform stub override no_sync/fast/dma_mode 2008-04-07 12:19:01 -05:00
wd33c93.h
wd7000.c [SCSI] Clean up my email address and use a single standard address for everything 2008-12-29 11:24:12 -06:00
zalon.c [SCSI] struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-02 10:22:16 -06:00
zorro7xx.c