Re: [PATCH v11 6/9] Make scsi_remove_host() wait until error handling finished

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

 



On 06/24/13 12:17, Jack Wang wrote:
@@ -646,14 +703,20 @@ static int scsi_try_target_reset(struct scsi_cmnd *scmd)
  static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd)
  {
         int rtn;
-       struct scsi_host_template *hostt = scmd->device->host->hostt;
+       struct Scsi_Host *host = scmd->device->host;
+       struct scsi_host_template *hostt = host->hostt;

         if (!hostt->eh_device_reset_handler)
                 return FAILED;

+       if (scsi_begin_eh(host))
+               return FAST_IO_FAIL;
+
         rtn = hostt->eh_device_reset_handler(scmd);
         if (rtn == SUCCESS)
                 __scsi_report_device_reset(scmd->device, NULL);
+       scsi_end_eh(host);
+
         return rtn;
  }

As the new eh from Hannes haven't make it into mainline, maybe we still
need also check scsi_try_to_abort_cmd?

I don't think such checks are necessary in scsi_try_to_abort_cmd(). scsi_remove_host() already waits until outstanding SCSI commands have finished. scsi_try_to_abort_cmd() only gets invoked if there are still one or more unfinished commands so scsi_try_to_abort_cmd() won't be invoked anymore after scsi_remove_host() has finished.

Bart.

--
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