nvmet-fc: do not check for invalid target port in nvmet_fc_handle_fcp_rqst()
When parsing a request in nvmet_fc_handle_fcp_rqst() we should not check for invalid target ports; if we do the command is aborted from the fcp layer, causing the host to assume a transport error. Rather we should still forward this request to the nvmet layer, which will then correctly fail the command with an appropriate error status. Signed-off-by: Hannes Reinecke <hare@suse.de> Reviewed-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
eff4423ec0
commit
2a4a910aa4
|
@ -2510,13 +2510,6 @@ nvmet_fc_handle_fcp_rqst(struct nvmet_fc_tgtport *tgtport,
|
||||||
u32 xfrlen = be32_to_cpu(cmdiu->data_len);
|
u32 xfrlen = be32_to_cpu(cmdiu->data_len);
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/*
|
|
||||||
* if there is no nvmet mapping to the targetport there
|
|
||||||
* shouldn't be requests. just terminate them.
|
|
||||||
*/
|
|
||||||
if (!tgtport->pe)
|
|
||||||
goto transport_error;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fused commands are currently not supported in the linux
|
* Fused commands are currently not supported in the linux
|
||||||
* implementation.
|
* implementation.
|
||||||
|
@ -2544,7 +2537,8 @@ nvmet_fc_handle_fcp_rqst(struct nvmet_fc_tgtport *tgtport,
|
||||||
|
|
||||||
fod->req.cmd = &fod->cmdiubuf.sqe;
|
fod->req.cmd = &fod->cmdiubuf.sqe;
|
||||||
fod->req.cqe = &fod->rspiubuf.cqe;
|
fod->req.cqe = &fod->rspiubuf.cqe;
|
||||||
fod->req.port = tgtport->pe->port;
|
if (tgtport->pe)
|
||||||
|
fod->req.port = tgtport->pe->port;
|
||||||
|
|
||||||
/* clear any response payload */
|
/* clear any response payload */
|
||||||
memset(&fod->rspiubuf, 0, sizeof(fod->rspiubuf));
|
memset(&fod->rspiubuf, 0, sizeof(fod->rspiubuf));
|
||||||
|
|
Loading…
Reference in New Issue