diff options
author | Mike Christie <mchristi@redhat.com> | 2010-08-11 12:06:25 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-09-05 13:57:04 -0400 |
commit | e3b3e6246726cd05950677ed843010b8e8c5884c (patch) | |
tree | 587375d4709159d4fe435dabedc6f3fcf0ab71f8 /drivers/scsi | |
parent | 1c1acab0367d88ad5da2b9db2efdf2699113ec88 (diff) |
[SCSI] scsi/block: increase flush/sync timeout
We have been seeing the flush request timeout with a wide
range of hardware from tgt+iser to FC targets from a major vendor.
After discussions about if the value should be configurable and
what the best value should be, this patch just increases the flush/sync
cache timeout to 1 minute. 2 minutes was determined to be too long, and
making it configurable was troublesome for users.
This patch was made over Linus's tree. It is not made over scsi-misc
or scsi-rc-fixes, because Linus's had block layer changes that my
patch was built over.
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Acked-by: Jens Axboe <jaxboe@fusionio.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/sd.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sd.h | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 2714becc2eaf..8c9b275f71a7 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -477,7 +477,7 @@ static int scsi_setup_discard_cmnd(struct scsi_device *sdp, struct request *rq) | |||
477 | 477 | ||
478 | static int scsi_setup_flush_cmnd(struct scsi_device *sdp, struct request *rq) | 478 | static int scsi_setup_flush_cmnd(struct scsi_device *sdp, struct request *rq) |
479 | { | 479 | { |
480 | rq->timeout = SD_TIMEOUT; | 480 | rq->timeout = SD_FLUSH_TIMEOUT; |
481 | rq->retries = SD_MAX_RETRIES; | 481 | rq->retries = SD_MAX_RETRIES; |
482 | rq->cmd[0] = SYNCHRONIZE_CACHE; | 482 | rq->cmd[0] = SYNCHRONIZE_CACHE; |
483 | rq->cmd_len = 10; | 483 | rq->cmd_len = 10; |
@@ -1072,7 +1072,7 @@ static int sd_sync_cache(struct scsi_disk *sdkp) | |||
1072 | * flush everything. | 1072 | * flush everything. |
1073 | */ | 1073 | */ |
1074 | res = scsi_execute_req(sdp, cmd, DMA_NONE, NULL, 0, &sshdr, | 1074 | res = scsi_execute_req(sdp, cmd, DMA_NONE, NULL, 0, &sshdr, |
1075 | SD_TIMEOUT, SD_MAX_RETRIES, NULL); | 1075 | SD_FLUSH_TIMEOUT, SD_MAX_RETRIES, NULL); |
1076 | if (res == 0) | 1076 | if (res == 0) |
1077 | break; | 1077 | break; |
1078 | } | 1078 | } |
diff --git a/drivers/scsi/sd.h b/drivers/scsi/sd.h index f81a9309e6de..315ce9d96b1f 100644 --- a/drivers/scsi/sd.h +++ b/drivers/scsi/sd.h | |||
@@ -19,6 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | #define SD_TIMEOUT (30 * HZ) | 20 | #define SD_TIMEOUT (30 * HZ) |
21 | #define SD_MOD_TIMEOUT (75 * HZ) | 21 | #define SD_MOD_TIMEOUT (75 * HZ) |
22 | #define SD_FLUSH_TIMEOUT (60 * HZ) | ||
22 | 23 | ||
23 | /* | 24 | /* |
24 | * Number of allowed retries | 25 | * Number of allowed retries |