1 Mar 2012 01:28
Re: [PATCH v8 09/13] libsas: enforce eh strategy handlers only in eh context
Dan Williams <dan.j.williams <at> intel.com>
2012-03-01 00:28:39 GMT
2012-03-01 00:28:39 GMT
On Wed, Feb 29, 2012 at 2:05 PM, James Bottomley
<James.Bottomley <at> hansenpartnership.com> wrote:
> On Fri, 2012-02-10 at 00:45 -0800, Dan Williams wrote:
>> The strategy handlers may be called in places that are problematic for
>> libsas (i.e. sata resets outside of domain revalidation filtering /
>> libata link recovery), or problematic for userspace (non-blocking ioctl
>> to sleeping reset functions). However, these routines are also called
>> for eh escalations and recovery of scsi_eh_prep_cmnd(), so permit them
>> as long as we are running in the host's error handler.
>>
>> Signed-off-by: Dan Williams <dan.j.williams <at> intel.com>
>> ---
>> drivers/scsi/libsas/sas_scsi_host.c | 15 +++++++++++----
>> 1 files changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
>> index f0b9b7b..1cabedc 100644
>> --- a/drivers/scsi/libsas/sas_scsi_host.c
>> +++ b/drivers/scsi/libsas/sas_scsi_host.c
>> <at> <at> -463,11 +463,14 <at> <at> EXPORT_SYMBOL_GPL(sas_get_local_phy);
>> /* Attempt to send a LUN reset message to a device */
>> int sas_eh_device_reset_handler(struct scsi_cmnd *cmd)
>> {
>> - struct domain_device *dev = cmd_to_domain_dev(cmd);
>> - struct sas_internal *i =
>> - to_sas_internal(dev->port->ha->core.shost->transportt);
>> - struct scsi_lun lun;
>> int res;
>> + struct scsi_lun lun;
>> + struct Scsi_Host *host = cmd->device->host;
(Continue reading)
RSS Feed