aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2005-09-04 12:32:05 -0400
committerJames Bottomley <jejb@mulgrave.(none)>2005-09-06 18:37:57 -0400
commit3173d8c342971a03857d8af749a3f57da7d06b57 (patch)
tree6dc8162d8b68e0b66846bf7e2ed015eb60d48378
parentba482ef4b16bad5172d2be693d4b2420b84c84e7 (diff)
[SCSI] quieten messages on scsi_execute commands
scsi_io_completion() can be a bit noisy about certain conditions. Previously this wasn't a problem for internally generated commands, since they never hit it. However, since we do all SCSI commands via bios, now they do. user CD testers like magicdev are now getting not ready messages every time they touch the CD to see if there's anything in it. Fix this by making all scsi_execute commands REQ_QUIET and making scsi_finish_io() not say anything for REQ_QUIET. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-rw-r--r--drivers/scsi/scsi_lib.c37
1 files changed, 19 insertions, 18 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index 72a47ce7a1d3..77f2d444f7e0 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -315,7 +315,7 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
315 req->sense = sense; 315 req->sense = sense;
316 req->sense_len = 0; 316 req->sense_len = 0;
317 req->timeout = timeout; 317 req->timeout = timeout;
318 req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL; 318 req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET;
319 319
320 /* 320 /*
321 * head injection *required* here otherwise quiesce won't work 321 * head injection *required* here otherwise quiesce won't work
@@ -927,17 +927,20 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes,
927 scsi_requeue_command(q, cmd); 927 scsi_requeue_command(q, cmd);
928 return; 928 return;
929 } 929 }
930 printk(KERN_INFO "Device %s not ready.\n", 930 if (!(req->flags & REQ_QUIET))
931 req->rq_disk ? req->rq_disk->disk_name : ""); 931 dev_printk(KERN_INFO,
932 &cmd->device->sdev_gendev,
933 "Device not ready.\n");
932 cmd = scsi_end_request(cmd, 0, this_count, 1); 934 cmd = scsi_end_request(cmd, 0, this_count, 1);
933 return; 935 return;
934 case VOLUME_OVERFLOW: 936 case VOLUME_OVERFLOW:
935 printk(KERN_INFO "Volume overflow <%d %d %d %d> CDB: ", 937 if (!(req->flags & REQ_QUIET)) {
936 cmd->device->host->host_no, 938 dev_printk(KERN_INFO,
937 (int)cmd->device->channel, 939 &cmd->device->sdev_gendev,
938 (int)cmd->device->id, (int)cmd->device->lun); 940 "Volume overflow, CDB: ");
939 __scsi_print_command(cmd->data_cmnd); 941 __scsi_print_command(cmd->data_cmnd);
940 scsi_print_sense("", cmd); 942 scsi_print_sense("", cmd);
943 }
941 cmd = scsi_end_request(cmd, 0, block_bytes, 1); 944 cmd = scsi_end_request(cmd, 0, block_bytes, 1);
942 return; 945 return;
943 default: 946 default:
@@ -954,15 +957,13 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes,
954 return; 957 return;
955 } 958 }
956 if (result) { 959 if (result) {
957 if (!(req->flags & REQ_SPECIAL)) 960 if (!(req->flags & REQ_QUIET)) {
958 printk(KERN_INFO "SCSI error : <%d %d %d %d> return code " 961 dev_printk(KERN_INFO, &cmd->device->sdev_gendev,
959 "= 0x%x\n", cmd->device->host->host_no, 962 "SCSI error: return code = 0x%x\n", result);
960 cmd->device->channel, 963
961 cmd->device->id, 964 if (driver_byte(result) & DRIVER_SENSE)
962 cmd->device->lun, result); 965 scsi_print_sense("", cmd);
963 966 }
964 if (driver_byte(result) & DRIVER_SENSE)
965 scsi_print_sense("", cmd);
966 /* 967 /*
967 * Mark a single buffer as not uptodate. Queue the remainder. 968 * Mark a single buffer as not uptodate. Queue the remainder.
968 * We sometimes get this cruft in the event that a medium error 969 * We sometimes get this cruft in the event that a medium error