linux/drivers/scsi/fcoe
Chris Leech 55c8bafba5 [SCSI] fcoe: fix handling of pending queue, prevent out of order frames (v3)
In fcoe_check_wait_queue() the queue length could temporarily drop to 0,
before the last frame was successfully sent.  This resulted in out of order
data frames within a single sequence, leading to IO timeout errors.

This builds on the approach from Vasu Dev to only fix the queue management in
fcoe_check_wait_queue, where my first patch added locking to the transmit
path even when the pending queue was not in use.

This patch continues to use fcoe_pending_queue.qlen instead of introducing a
new length counter, but takes precautions to ensure it never drops to 0 before
the final frame in the queue has successfully been passed to the netdev qdisc
layer.  It also includes some cleanup of fcoe_check_wait_queue and removes the
fcoe_insert_wait_queue(_head) wrapper functions.

Signed-off-by: Chris Leech <christopher.leech@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
2009-03-10 09:09:40 -05:00
..
fc_transport_fcoe.c [SCSI] fcoe: Correct fcoe_transports initialization vs. registration 2009-03-10 09:06:17 -05:00
fcoe_sw.c [SCSI] fcoe: Out of order tx frames was causing several check condition SCSI status 2009-03-10 09:09:21 -05:00
libfcoe.c [SCSI] fcoe: fix handling of pending queue, prevent out of order frames (v3) 2009-03-10 09:09:40 -05:00
Makefile [SCSI] fcoe: Fibre Channel over Ethernet 2008-12-29 11:24:33 -06:00