aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Leech <christopher.leech@intel.com>2009-02-27 10:56:32 -0800
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-10 09:09:40 -0500
commit55c8bafba549e3e82f6999db8c5a62fc3c255c14 (patch)
tree3ae4d7375fc1c5faaa16cc70277ca24e33a6f9b0 /lib
parentc826a3145736e3baabebccfd0aecfbb6dae059f2 (diff)
[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>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions