Commit 511c49fe authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

fnic: fix fnic_scsi_host_{start,end}_tag



The way these functions abuse ->special to try to store the dummy
request looks completely broken, given that it actually stores the
original scsi command.

Instead switch to ->host_scribble and store the actual dummy command.

Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e41128cf
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2274,7 +2274,7 @@ fnic_scsi_host_start_tag(struct fnic *fnic, struct scsi_cmnd *sc)
		return SCSI_NO_TAG;

	sc->tag = sc->request->tag = dummy->tag;
	sc->request->special = sc;
	sc->host_scribble = (unsigned char *)dummy;

	return dummy->tag;
}
@@ -2286,7 +2286,7 @@ fnic_scsi_host_start_tag(struct fnic *fnic, struct scsi_cmnd *sc)
static inline void
fnic_scsi_host_end_tag(struct fnic *fnic, struct scsi_cmnd *sc)
{
	struct request *dummy = sc->request->special;
	struct request *dummy = (struct request *)sc->host_scribble;

	blk_mq_free_request(dummy);
}