Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17e01f21 authored by Mike Christie's avatar Mike Christie Committed by James Bottomley
Browse files

[SCSI] add retries field to request for REQ_BLOCK_PC use



For tape we need to control the retries. This patch adds a retries
counter on the request for REQ_BLOCK_PC commands originating from
scsi_execute* to use. REQ_BLOCK_PC commands comming from the block
layer SG_IO path continue to use the retires set in the ULD init_command.
(scsi_execute* does not set the gendisk so we do not execute
the init_command in that path).

Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 6e68af66
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -259,6 +259,7 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
	memcpy(req->cmd, cmd, req->cmd_len);
	req->sense = sense;
	req->sense_len = 0;
	req->retries = retries;
	req->timeout = timeout;
	req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET;

@@ -472,6 +473,7 @@ int scsi_execute_async(struct scsi_device *sdev, const unsigned char *cmd,
	req->sense = sioc->sense;
	req->sense_len = 0;
	req->timeout = timeout;
	req->retries = retries;
	req->flags |= REQ_BLOCK_PC | REQ_QUIET;
	req->end_io_data = sioc;

@@ -1393,7 +1395,7 @@ static int scsi_prep_fn(struct request_queue *q, struct request *req)
				cmd->sc_data_direction = DMA_NONE;
			
			cmd->transfersize = req->data_len;
			cmd->allowed = 3;
			cmd->allowed = req->retries;
			cmd->timeout_per_command = req->timeout;
			cmd->done = scsi_generic_done;
		}
+1 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@ struct request {
	void *sense;

	unsigned int timeout;
	int retries;

	/*
	 * For Power Management requests