public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: linux-scsi@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Subject: [PATCH v4 07/10] libsas: don't recover 'gone' devices in sas_ata_hard_reset()
Date: Mon, 16 Jan 2012 21:11:38 -0800	[thread overview]
Message-ID: <20120117051137.22344.94760.stgit@localhost6.localdomain6> (raw)
In-Reply-To: <20120117050847.22344.4961.stgit@localhost6.localdomain6>

The commands that timeout when a disk is forcibly removed may trigger
libata to attempt recovery of the device.  If libsas has decided to
remove the device don't permit ata to continue to issue resets to its
last known phy.

The primary motivation for this patch is hotplug testing by writing 0 to
/sys/class/sas_phy/phyX/enable.  Without this check this test leads to
libata issuing a reset and re-enabling the device that wants to be torn
down.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/scsi/libsas/sas_ata.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
index 92f7e78..0cb538f 100644
--- a/drivers/scsi/libsas/sas_ata.c
+++ b/drivers/scsi/libsas/sas_ata.c
@@ -326,6 +326,9 @@ static int sas_ata_hard_reset(struct ata_link *link, unsigned int *class,
 	struct domain_device *dev = ap->private_data;
 	struct sas_internal *i = dev_to_sas_internal(dev);
 
+	if (test_bit(SAS_DEV_GONE, &dev->state))
+		return -ENODEV;
+
 	res = i->dft->lldd_I_T_nexus_reset(dev);
 
 	if (res != TMF_RESP_FUNC_COMPLETE)


  parent reply	other threads:[~2012-01-17  5:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-17  5:11 [resend PATCH v4 00/10] libsas: eh reworks (ata-eh vs discovery, races, ...) Dan Williams
2012-01-17  5:11 ` [PATCH v4 01/10] libsas: convert dev->gone to flags Dan Williams
2012-01-17  5:11 ` [PATCH v4 02/10] libsas: prevent domain rediscovery competing with ata error handling Dan Williams
2012-01-17  5:11 ` [PATCH v4 03/10] libsas: fix timeout vs completion race Dan Williams
2012-01-17  5:11 ` [PATCH v4 04/10] libsas: don't mark expanders as gone when a child device is removed Dan Williams
2012-01-17  5:11 ` [PATCH v4 05/10] libsas: check for 'gone' expanders in smp_execute_task() Dan Williams
2012-01-17  5:11 ` [PATCH v4 06/10] libsas: fix sas_find_local_phy(), take phy references Dan Williams
2012-01-17  5:11 ` Dan Williams [this message]
2012-01-17  5:11 ` [PATCH v4 08/10] isci: ->lldd_ata_check_ready handler Dan Williams
2012-01-17  5:11 ` [PATCH v4 09/10] libsas: pre-clean commands that won the eh vs completion race Dan Williams
2012-01-17  5:11 ` [PATCH v4 10/10] libsas: feed the scsi_block_when_processing_errors() meter Dan Williams
2012-02-02  8:04   ` Dan Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120117051137.22344.94760.stgit@localhost6.localdomain6 \
    --to=dan.j.williams@intel.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox