]> err.no Git - linux-2.6/blobdiff - drivers/scsi/scsi.c
Merge from Linus' tree.
[linux-2.6] / drivers / scsi / scsi.c
index 4befbc275f945f2426242d02ea063dc9a822e9b3..1f0ebabf6d47663ffd0f9e6e62fc4b7eff21c422 100644 (file)
@@ -811,7 +811,7 @@ static void scsi_softirq(struct softirq_action *h)
                if (disposition != SUCCESS &&
                    time_before(cmd->jiffies_at_alloc + wait_for, jiffies)) {
                        dev_printk(KERN_ERR, &cmd->device->sdev_gendev, 
-                                  "timing out command, waited %ds\n",
+                                  "timing out command, waited %lus\n",
                                   wait_for/HZ);
                        disposition = SUCCESS;
                }
@@ -1265,9 +1265,8 @@ int scsi_device_cancel(struct scsi_device *sdev, int recovery)
                list_for_each_safe(lh, lh_sf, &active_list) {
                        scmd = list_entry(lh, struct scsi_cmnd, eh_entry);
                        list_del_init(lh);
-                       if (recovery) {
-                               scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD);
-                       } else {
+                       if (recovery &&
+                           !scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD)) {
                                scmd->result = (DID_ABORT << 16);
                                scsi_finish_command(scmd);
                        }