Skip to content

Commit

Permalink
[SCSI] quieten messages on scsi_execute commands
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
James Bottomley authored and James Bottomley committed Sep 6, 2005
1 parent ba482ef commit 3173d8c
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions drivers/scsi/scsi_lib.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd,
req->sense = sense;
req->sense_len = 0;
req->timeout = timeout;
req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL;
req->flags |= flags | REQ_BLOCK_PC | REQ_SPECIAL | REQ_QUIET;

/*
* head injection *required* here otherwise quiesce won't work
Expand Down Expand Up @@ -927,17 +927,20 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes,
scsi_requeue_command(q, cmd);
return;
}
printk(KERN_INFO "Device %s not ready.\n",
req->rq_disk ? req->rq_disk->disk_name : "");
if (!(req->flags & REQ_QUIET))
dev_printk(KERN_INFO,
&cmd->device->sdev_gendev,
"Device not ready.\n");
cmd = scsi_end_request(cmd, 0, this_count, 1);
return;
case VOLUME_OVERFLOW:
printk(KERN_INFO "Volume overflow <%d %d %d %d> CDB: ",
cmd->device->host->host_no,
(int)cmd->device->channel,
(int)cmd->device->id, (int)cmd->device->lun);
__scsi_print_command(cmd->data_cmnd);
scsi_print_sense("", cmd);
if (!(req->flags & REQ_QUIET)) {
dev_printk(KERN_INFO,
&cmd->device->sdev_gendev,
"Volume overflow, CDB: ");
__scsi_print_command(cmd->data_cmnd);
scsi_print_sense("", cmd);
}
cmd = scsi_end_request(cmd, 0, block_bytes, 1);
return;
default:
Expand All @@ -954,15 +957,13 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes,
return;
}
if (result) {
if (!(req->flags & REQ_SPECIAL))
printk(KERN_INFO "SCSI error : <%d %d %d %d> return code "
"= 0x%x\n", cmd->device->host->host_no,
cmd->device->channel,
cmd->device->id,
cmd->device->lun, result);

if (driver_byte(result) & DRIVER_SENSE)
scsi_print_sense("", cmd);
if (!(req->flags & REQ_QUIET)) {
dev_printk(KERN_INFO, &cmd->device->sdev_gendev,
"SCSI error: return code = 0x%x\n", result);

if (driver_byte(result) & DRIVER_SENSE)
scsi_print_sense("", cmd);
}
/*
* Mark a single buffer as not uptodate. Queue the remainder.
* We sometimes get this cruft in the event that a medium error
Expand Down

0 comments on commit 3173d8c

Please sign in to comment.