Re: [PATCH] fix id computation in scsi_eh_target_reset()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/14/2010 09:04 AM, Hillf Danton wrote:
There seems that the id of the tgtr_scmd processed by
scsi_try_target_reset() does not match the id in case that
SUCCESS is returned by scsi_try_target_reset().

The mismatch is fixed, and the loop to find the next highest
is also simplified.

Signed-off-by: Hillf Danton<dhillf@xxxxxxxxx>
---

--- a/drivers/scsi/scsi_error.c	2010-09-13 07:07:38.000000000 +0800
+++ b/drivers/scsi/scsi_error.c	2010-10-14 21:45:56.000000000 +0800
@@ -1173,14 +1173,19 @@ static int scsi_eh_target_reset(struct S
  			list_for_each_entry(scmd, work_q, eh_entry) {
  				if (scmd_id(scmd)>  id&&
  				(!tgtr_scmd ||
-				     scmd_id(tgtr_scmd)>  scmd_id(scmd)))
+				     scmd_id(tgtr_scmd)>  scmd_id(scmd))) {
  						tgtr_scmd = scmd;
+						if (1 + id == scmd_id(scmd))
+							break;
+				}
  			}
  		}
  		if (!tgtr_scmd)
  			/* no more commands, that's it */
  			break;

+		id = scmd_id(tgtr_scmd);
+
  		SCSI_LOG_ERROR_RECOVERY(3, printk("%s: Sending target reset "
  						  "to target %d\n",
  						  current->comm, id));


Thanks. Fixes the extra target resets I have been seeing and commands not getting cleaned up properly.

Reviewed-by: Mike Christie <michaelc@xxxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux