kernel-ark/drivers/scsi
Mike Christie 77a23c21aa [SCSI] libiscsi: fix iscsi cmdsn allocation
The cmdsn allocation and pdu transmit code can race, and we can end
up sending a pdu with cmdsn 10 before a pdu with 5. The target will
then fail the connection/session. This patch fixes the problem by
delaying the cmdsn allocation until we are about to send the pdu.

This also removes the xmitmutex. We were using the connection xmitmutex
during error handling to handle races with mtask and ctask cleanup and
completion. For ctasks we now have nice refcounting and for the mtask,
if we hit the case where the mtask timesout and it is floating
around somewhere in the driver, we end up dropping the session.
And to handle session level cleanup, we use the xmit suspend bit
along with scsi_flush_queue and the session lock to make sure
that the xmit thread is not possibly transmitting a task while
we are trying to kill it.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Cc: Roland Dreier <rdreier@cisco.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2007-06-02 15:34:14 -04:00
..
aacraid [SCSI] aacraid: Changeable queue depth 2007-06-01 11:39:56 -04:00
aic7xxx [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
aic7xxx_old
aic94xx [SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does not complete 2007-05-22 14:12:45 -05:00
arcmsr [SCSI] arcmsr: convert to use the data buffer accessors 2007-05-27 22:28:21 -05:00
arm [ARM] ecard: add ecardm_iomap() / ecardm_iounmap() 2007-05-11 17:19:02 +01:00
dpt [SCSI] dpt: whitespace cleanup 2007-04-01 10:10:04 -05:00
ibmvscsi [SCSI] ibmvscsi: Changeable queue depth 2007-05-29 22:52:31 -05:00
libsas [SCSI] libsas: convert to use the data buffer accessors 2007-05-29 12:50:54 -05:00
lpfc [SCSI] lpfc 8.1.12 : Change version number to 8.1.12 2007-05-06 09:33:16 -05:00
megaraid [SCSI] megaraid: convert to use the data buffer accessors 2007-05-31 18:38:36 -04:00
pcmcia [SCSI] sym53c500_cs: convert to use the data buffer accessors 2007-05-26 19:09:22 -05:00
qla2xxx [SCSI] qla2xxx: convert to use the data buffer accessors 2007-05-31 12:23:49 -05:00
qla4xxx [SCSI] iscsi class, qla4xxx, iscsi_tcp, ib_iser: export/set initiator name 2007-06-01 12:56:40 -04:00
sym53c8xx_2
.gitignore
3w-9xxx.c [SCSI] 3w-9xxx: eliminate missed map_single path 2007-05-31 08:23:02 -05:00
3w-9xxx.h
3w-xxxx.c [SCSI] 3w-xxxx: convert to use the data buffer accessors 2007-05-30 23:29:32 -05:00
3w-xxxx.h
53c700_d.h_shipped
53c700.c [SCSI] 53c700: convert to use the data buffer accessors 2007-05-26 16:30:04 -05:00
53c700.h
53c700.scr
a100u2w.c [SCSI] a100u2w: convert to use the data buffer accessors 2007-05-26 19:12:34 -05:00
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
advansys.c [SCSI] advansys: cleanups 2007-05-27 15:05:10 -05:00
aha152x.c [SCSI] aha152x: use wait_for_completion_timeout 2007-05-22 10:50:19 -05:00
aha152x.h [SCSI] aha152x: fix variable use before initialisation and other bugs 2006-02-28 11:20:45 -06:00
aha1542.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
aha1542.h
aha1740.c [SCSI] aha1740: convert to use the data buffer accessors 2007-05-26 19:12:56 -05:00
aha1740.h
aic7xxx_old.c [SCSI] aic7xxx_old: convert to use the data buffer accessors 2007-05-27 21:42:56 -05:00
atari_dma_emul.c
atari_NCR5380.c m68k: Atari SCSI workqueue updates 2007-05-04 17:59:06 -07:00
atari_scsi.c m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atari_scsi.h m68k: Atari SCSI driver compile fixes 2007-05-04 17:59:05 -07:00
atp870u.c
atp870u.h
blz1230.c
blz2060.c
BusLogic.c [SCSI] BusLogic: convert to use the data buffer accessors 2007-05-26 19:21:37 -05:00
BusLogic.h
ch.c [SCSI] ch: kmalloc/memset->kzalloc 2007-05-06 09:33:11 -05:00
constants.c
cyberstorm.c
cyberstormII.c
dc395x.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
dc395x.h
dec_esp.c
dmx3191d.c
dpt_i2o.c [SCSI] dpt_i2o: convert to use the data buffer accessors 2007-05-31 12:25:27 -05:00
dpti.h
dtc.c
dtc.h
eata_generic.h [SCSI] eata_pio: Remove FALSE/TRUE defines 2007-03-20 11:27:03 -05:00
eata_pio.c
eata_pio.h
eata.c [SCSI] eata: convert to use the data buffer accessors 2007-05-26 19:13:55 -05:00
esp_scsi.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
esp_scsi.h [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
fastlane.c
fcal.c
fcal.h [SCSI] remove Scsi_Device typedef 2005-11-09 15:48:20 -05:00
fd_mcs.c
fdomain.c [SCSI] fdomain: fix PCMCIA-related warnings 2007-05-27 12:59:28 -05:00
fdomain.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
FlashPoint.c
g_NCR5380_mmio.c
g_NCR5380.c
g_NCR5380.h
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gdth.c [SCSI] gdth: Fix obvious typo "spin_lock_irqrestore()" 2007-05-30 08:39:52 -05:00
gdth.h
gvp11.c
gvp11.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
hosts.c SCSI: use the proper semaphore to protect the class lists 2007-04-27 10:57:30 -07:00
hptiop.c
hptiop.h
ibmmca.c [SCSI] ibmmca: convert to use the data buffer accessors 2007-05-26 16:30:17 -05:00
ide-scsi.c ide: move IDE settings handling to ide-proc.c 2007-05-10 00:01:10 +02:00
imm.c
imm.h
in2000.c
in2000.h
initio.c [SCSI] initio: convert to use the data buffer accessors 2007-05-26 19:13:27 -05:00
initio.h [SCSI] initio: Convert into a real Linux driver and update to modern style 2007-05-22 11:08:56 -05:00
ipr.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
ipr.h [SCSI] ipr: Use PCI-E reset API for new ipr adapter 2007-05-08 11:54:40 -05:00
ips.c [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
ips.h [SCSI] ips: remove kernel 2.4 code 2007-05-24 09:14:41 -05:00
iscsi_tcp.c [SCSI] libiscsi: fix iscsi cmdsn allocation 2007-06-02 15:34:14 -04:00
iscsi_tcp.h [SCSI] iscsi tcp: fix iscsi xmit state machine 2007-06-01 12:59:26 -04:00
jazz_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
Kconfig [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
lasi700.c
libiscsi.c [SCSI] libiscsi: fix iscsi cmdsn allocation 2007-06-02 15:34:14 -04:00
libsrp.c [SCSI] tgt: fix a rdma indirect transfer error bug 2007-05-16 12:45:17 -04:00
mac53c94.c [SCSI] mac53c94: convert to use the data buffer accessors 2007-05-26 19:07:50 -05:00
mac53c94.h
mac_esp.c
mac_scsi.c
mac_scsi.h
Makefile [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
mca_53c9x.c
megaraid.c [SCSI] megaraid_old: convert to use the data buffer accessors 2007-05-31 18:11:21 -04:00
megaraid.h [SCSI] megaraid: fix warnings when CONFIG_PROC_FS=n 2007-05-08 11:15:08 -05:00
mesh.c Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-05-08 20:32:16 -07:00
mesh.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mvme147.c
mvme147.h [SCSI] wd33c93: Scsi_Cmnd convertion 2006-09-12 17:12:31 -05:00
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c [SCSI] NCR53c406a: convert to use the data buffer accessors 2007-05-26 19:08:20 -05:00
NCR53C9x.c
NCR53C9x.h
NCR5380.c [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR5380.h [SCSI] ncr5380 warning fixes 2007-05-24 09:13:25 -05:00
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nsp32_debug.c
nsp32_io.h
nsp32.c [SCSI] nsp32: convert to use the data buffer accessors 2007-05-30 08:38:50 -05:00
nsp32.h
oktagon_esp.c
oktagon_io.S
osst_detect.h
osst_options.h
osst.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
osst.h
pas16.c
pas16.h [SCSI] remove Scsi_Host_Template typedef 2005-11-09 15:44:09 -05:00
pluto.c [SCSI] pluto: Use wait_for_completion_timeout. 2007-05-29 02:49:05 -07:00
pluto.h
ppa.c
ppa.h
psi240i.c
psi240i.h
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h [SCSI] qla1280: update firmware 2005-05-20 12:53:13 -05:00
qla1280.c [SCSI] qla1280: use DMA_64BIT_MASK instead of ~ 0ULL 2007-05-06 09:33:11 -05:00
qla1280.h
qlogicfas408.c [SCSI] qlogicfas408: convert to use the data buffer accessors 2007-05-26 19:21:09 -05:00
qlogicfas408.h
qlogicfas.c
qlogicpti_asm.c
qlogicpti.c [SPARC/64] constify of_get_property return: drivers 2007-04-26 01:54:27 -07:00
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
scsi_debug.h
scsi_devinfo.c [SCSI] stex: fix id mapping issue 2007-05-16 12:40:21 -04:00
scsi_error.c [SCSI] scsi_error: send the sense buffer down without copying 2007-05-24 09:10:02 -05:00
scsi_ioctl.c
scsi_lib.c [SCSI] scsi_lib: add scatter/gather data buffer accessors 2007-05-26 16:29:59 -05:00
scsi_logging.h
scsi_module.c
scsi_netlink.c [NETLINK]: Switch cb_lock spinlock to mutex and allow to override it 2007-04-25 22:29:03 -07:00
scsi_priv.h
scsi_proc.c
scsi_sas_internal.h [SCSI] scsi_transport_sas: introduce a sas_port entity 2006-06-28 12:40:54 -04:00
scsi_scan.c
scsi_sysctl.c
scsi_sysfs.c [SCSI] kill scsi host template suspend/resume 2007-05-22 10:41:12 -05:00
scsi_tgt_if.c
scsi_tgt_lib.c
scsi_tgt_priv.h
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc_transport: fix sysfs deadlock on vport delete 2007-05-26 11:47:58 -05:00
scsi_transport_iscsi.c [SCSI] iscsi class, iscsi_tcp, ib_iser: add sysfs chap file 2007-06-01 12:58:58 -04:00
scsi_transport_sas.c
scsi_transport_spi.c
scsi_typedefs.h
scsi_wait_scan.c
scsi.c
scsi.h
scsicam.c
sd.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
seagate.c
sg.c [SCSI] sg: remove unnecessary check 2007-05-28 09:08:32 -05:00
sgiwd93.c Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sim710.c
sni_53c710.c Replace deprecated SA_xxx interrupt flags 2007-05-08 11:15:08 -07:00
sr_ioctl.c
sr_vendor.c
sr.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
sr.h
st_options.h
st.c [SCSI] modalias for scsi devices 2007-04-17 18:15:04 -04:00
st.h
stex.c [SCSI] Merge up to linux-2.6 head 2007-05-30 23:57:05 -05:00
sun3_NCR5380.c
sun3_scsi_vme.c
sun3_scsi.c
sun3_scsi.h
sun3x_esp.c
sun_esp.c [SCSI] esp: use shost_priv 2007-05-31 17:30:04 -04:00
sym53c416.c [SCSI] sym53c416: convert to use the data buffer accessors 2007-05-26 19:08:50 -05:00
sym53c416.h
t128.c
t128.h
tmscsim.c [SCSI] tmscsim: convert to use the data buffer accessors 2007-05-27 16:11:01 -05:00
tmscsim.h [SCSI] tmscsim: remove bogus endianness conversions 2007-05-06 09:33:21 -05:00
u14-34f.c [SCSI] u14-34f: convert to use the data buffer accessors 2007-05-26 19:19:04 -05:00
ultrastor.c [SCSI] ultrastor: convert to use the data buffer accessors 2007-05-26 19:18:38 -05:00
ultrastor.h
wd33c93.c
wd33c93.h
wd7000.c [SCSI] wd7000: convert to use the data buffer accessors 2007-05-26 19:18:10 -05:00
zalon.c