From: Jeff Skirvin Date: Wed, 9 Mar 2011 03:32:16 +0000 (-0700) Subject: isci: All pending requests are terminated before stopping the device. X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6e2802a7fc246b53f919efbf1c011da2d0a4ff30;p=linux-beck.git isci: All pending requests are terminated before stopping the device. Make sure all pending I/O including any in the libsas error handler process is cleaned-up. Signed-off-by: Jeff Skirvin Signed-off-by: Dan Williams --- diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c index 1dae2184b9e9..6fe6815e4b74 100644 --- a/drivers/scsi/isci/remote_device.c +++ b/drivers/scsi/isci/remote_device.c @@ -380,6 +380,10 @@ enum sci_status isci_remote_device_stop(struct isci_host *ihost, struct isci_rem "%s: isci_device = %p\n", __func__, idev); isci_remote_device_change_state(idev, isci_stopping); + + /* Kill all outstanding requests. */ + isci_remote_device_nuke_requests(idev); + set_bit(IDEV_STOP_PENDING, &idev->flags); spin_lock_irqsave(&ihost->scic_lock, flags);