X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=blobdiff_plain;f=include%2Fscsi%2Fscsi_host.h;fp=include%2Fscsi%2Fscsi_host.h;h=827992949c4bfe2b94635262483a4863aa0b2550;hp=b3dd90f3e85868a4023fecceecefb7336f795324;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index b3dd90f3e..827992949 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -140,11 +140,26 @@ struct scsi_host_template { * * Status: REQUIRED (at least one of them) */ + int (* eh_strategy_handler)(struct Scsi_Host *); int (* eh_abort_handler)(struct scsi_cmnd *); int (* eh_device_reset_handler)(struct scsi_cmnd *); int (* eh_bus_reset_handler)(struct scsi_cmnd *); int (* eh_host_reset_handler)(struct scsi_cmnd *); + /* + * This is an optional routine to notify the host that the scsi + * timer just fired. The returns tell the timer routine what to + * do about this: + * + * EH_HANDLED: I fixed the error, please complete the command + * EH_RESET_TIMER: I need more time, reset the timer and + * begin counting again + * EH_NOT_HANDLED Begin normal error recovery + * + * Status: OPTIONAL + */ + enum scsi_eh_timer_return (* eh_timed_out)(struct scsi_cmnd *); + /* * Before the mid layer attempts to scan for a new device where none * currently exists, it will call this entry in your driver. Should @@ -285,7 +300,7 @@ struct scsi_host_template { * suspend support */ int (*resume)(struct scsi_device *); - int (*suspend)(struct scsi_device *, pm_message_t state); + int (*suspend)(struct scsi_device *); /* * Name of proc directory @@ -472,7 +487,6 @@ struct Scsi_Host { */ unsigned int host_busy; /* commands actually active on low-level */ unsigned int host_failed; /* commands that failed. */ - unsigned int host_eh_scheduled; /* EH scheduled without command */ unsigned short host_no; /* Used for IOCTL_GET_IDLUN, /proc/scsi et al. */ int resetting; /* if set, it means that last_reset is a valid value */ @@ -542,9 +556,6 @@ struct Scsi_Host { */ unsigned ordered_tag:1; - /* task mgmt function in progress */ - unsigned tmf_in_progress:1; - /* * Optional work queue to be utilized by the transport */ @@ -622,8 +633,7 @@ static inline int scsi_host_in_recovery(struct Scsi_Host *shost) { return shost->shost_state == SHOST_RECOVERY || shost->shost_state == SHOST_CANCEL_RECOVERY || - shost->shost_state == SHOST_DEL_RECOVERY || - shost->tmf_in_progress; + shost->shost_state == SHOST_DEL_RECOVERY; } extern int scsi_queue_work(struct Scsi_Host *, struct work_struct *);