]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit
scsi: qla2xxx: Set NVMe status code for failed NVMe FCP request
authorDaniel Wagner <dwagner@suse.de>
Thu, 4 Jun 2020 10:07:45 +0000 (12:07 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 24 Jun 2020 03:48:26 +0000 (23:48 -0400)
commitef2e3ec520a8c20661ca4e7d17a5c7110d3a7828
tree99142abf70e4f9c431b2e9cce7271cfd9978edff
parentb8f1d1e05817f5e5f7517911b55ea13d2c0438a0
scsi: qla2xxx: Set NVMe status code for failed NVMe FCP request

The qla2xxx driver knows when request was processed successfully or
not. But it always sets the NVMe status code to 0/NVME_SC_SUCCESS. The
upper layer needs to figure out from the rcv_rsplen and transferred_length
variables if the request was transferred successfully. This is not always
possible, e.g. when the request data length is 0, the transferred_length is
also set 0 which is interpreted as success in nvme_fc_fcpio_done(). Let's
inform the upper layer (nvme_fc_fcpio_done()) when something went wrong.

nvme_fc_fcpio_done() maps all non-NVME_SC_SUCCESS status codes to
NVME_SC_HOST_PATH_ERROR. There isn't any benefit to map the QLA status code
to the NVMe status code. Therefore, use NVME_SC_INTERNAL to indicate an
error which aligns it with the lpfc driver.

Link: https://lore.kernel.org/r/20200604100745.89250-1-dwagner@suse.de
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_nvme.c