[SCSI] fcoe: Fix write errors on NPIV ports
authorNeerav Parikh <Neerav.Parikh@intel.com>
Mon, 24 Sep 2012 18:52:45 +0000 (11:52 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 7 Oct 2012 10:49:34 +0000 (11:49 +0100)
commit31c37a6f21d86e6bca095b71d603ed543ae070ad
tree1f0bf61ad223ec6b59aae969f62001bae5c1437f
parentbd756ddea18e02ccea8b29496b2fe3bd91af8eb7
[SCSI] fcoe: Fix write errors on NPIV ports

SCSI errors were generated while writing to LUNs
connected via NPIV ports.

Debugging this it was found that the FCoE packets
transmitted via the NPIV ports were not tagged with
correct user priority as negotiated with peer by DCB
agent. This resulted in FCoE traffic going with priority
zero(0) that did not have priority flow control (PFC)
enabled for it. The initiator after transferring data
to the target never saw any reply indicating the transfer
was complete. This resulted in error recovery (ABTS) and
SCSI command retries by the scsi-mid layer; eventually
resulting in I/O errors.

This patch fixes this issue by keeping the FCoE user
priority information in the fcoe_interface instance
that is common for both the physical port as well as
NPIV ports connected to that physical port; instead
of storing it in fcoe_port structure that has a per
port instance.

Signed-off-by: Neerav Parikh <Neerav.Parikh@intel.com>
Acked-by: Yi Zou <yi.zou@intel.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Tested-by: Marcus Dennis <marcusx.e.dennis@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/fcoe/fcoe.c
drivers/scsi/fcoe/fcoe.h
include/scsi/libfcoe.h