• James Smart's avatar
    lpfc: support nvmet_fc defer_rcv callback · 50738420
    James Smart authored
    Currently, calls to nvmet_fc_rcv_fcp_req() always copied the
    FC-NVME cmd iu to a temporary buffer before returning, allowing
    the driver to immediately repost the buffer to the hardware.
    
    To address timing conditions on queue element structures vs async
    command reception, the nvmet_fc transport occasionally may need to
    hold on to the command iu buffer for a short period. In these cases,
    the nvmet_fc_rcv_fcp_req() will return a special return code
    (-EOVERFLOW). In these cases, the LLDD must delay until the new
    defer_rcv lldd callback is called before recycling the buffer back
    to the hw.
    
    This patch adds support for the new nvmet_fc transport defer_rcv
    callback and recognition of the new error code when passing commands
    to the transport.
    Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    50738420
lpfc_nvmet.c 80.7 KB