Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp532445yba; Mon, 1 Apr 2019 11:12:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqyu5AvmTBcNnd+Jdr8okNXOX0aq6g9KpZL5gGYjwWrd+TB+b8Z7eLxw8k/PbZqFH8weswQq X-Received: by 2002:a63:4b0a:: with SMTP id y10mr61735362pga.66.1554142348041; Mon, 01 Apr 2019 11:12:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554142348; cv=none; d=google.com; s=arc-20160816; b=s9IGkmCHj/kHL9v7IW/FXWi64FkI2aSHQlsdmne7tPn5LRnat7YHF+lELqxLq+xtYK D+3tCVK72dYOPVR2YUl3D0fygx5w70UFbTZYCBAKV9Hxp6nw02lLf+parEQ8Mk4P/mkX cCmSOjn6JFSDiRHLlvcZ+oVBul9Qcyd4BHfd7MjQObWd3nDS84VHriPqIhUv1bX8bGce Y+BWWIKRwyyuLI6sN+kPorbk/+L7mNgWGaL9Fvhh+dZPiFyK5/KvkBHkjCyo6LMy3vZU ZLuQj8HfU5nVvERPzK0g/Ue9cceV3H2PT2smYfFvz9Pp9FKD9sRlW9ts+DtaqSCdIQb9 YCBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=UyM3sBRF554i5HfYtOsx8BrFlDTKMmCef8J3QHH61qw=; b=aESmww2FYg8sFyE1UrTcaEGEpY/MkTrn3UydqH+Axk8P8H+DMmZ4z0/SRiRbarY+hm LuM2gF6mauyxj7oAzoh5bmT651wOp0bd1YWrKzvcj8FKIvuHoXGsVmeLtNl5gv5E/ZSV pJ+Ucu1Ul/7rlW1fAh57F0G6AHiQlVL+RlUquUYjYaEyYaPa+9gnEvwbxNPmyN+KsMVp RNlOJ6HLrU2habFEbV9HWHJTPYp9RbuAHs1uOr1FZ4jyLQSsgw/IdjH9usd5zi+yqsZg WENfntgggt+wPF6cEwb+WmkP0xchLAX4+iiqq+acZisB05CcZidDrJXWkL1USKa03mGQ 0Zeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OnbVOvau; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m19si9283958pgk.76.2019.04.01.11.12.12; Mon, 01 Apr 2019 11:12:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OnbVOvau; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729559AbfDARH4 (ORCPT + 99 others); Mon, 1 Apr 2019 13:07:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:54192 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728557AbfDARHu (ORCPT ); Mon, 1 Apr 2019 13:07:50 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 970B621924; Mon, 1 Apr 2019 17:07:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554138469; bh=dUzcEpXMbiFBRJl32bZqhemcCt5/3wC3RU2GC1Uv8i0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OnbVOvaue1Y9D21mnMF50B9DkZcW77pHSS/02gaRC3LXCQ/qDKmd5PSJTDSYuCi3C FsZ22lCIiNoWroHydxipa/7PMA4BiHyeshd875M3k8/wF+uqKtSkUYow6jMGp/lIUM JLEH0qQMRUXea5EpYo2vAPygC86RUBHRVOGoGgrM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Steffen Maier , Jens Remus , Benjamin Block , "Martin K. Petersen" Subject: [PATCH 5.0 074/146] scsi: zfcp: fix rport unblock if deleted SCSI devices on Scsi_Host Date: Mon, 1 Apr 2019 19:01:26 +0200 Message-Id: <20190401170055.012428040@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190401170048.449559024@linuxfoundation.org> References: <20190401170048.449559024@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 5.0-stable review patch. If anyone has any objections, please let me know. ------------------ From: Steffen Maier commit fe67888fc007a76b81e37da23ce5bd8fb95890b0 upstream. An already deleted SCSI device can exist on the Scsi_Host and remain there because something still holds a reference. A new SCSI device with the same H:C:T:L and FCP device, target port WWPN, and FCP LUN can be created. When we try to unblock an rport, we still find the deleted SCSI device and return early because the zfcp_scsi_dev of that SCSI device is not ZFCP_STATUS_COMMON_UNBLOCKED. Hence we miss to unblock the rport, even if the new proper SCSI device would be in good state. Therefore, skip deleted SCSI devices when iterating the sdevs of the shost. [cf. __scsi_device_lookup{_by_target}() or scsi_device_get()] The following abbreviated trace sequence can indicate such problem: Area : REC Tag : ersfs_3 LUN : 0x4045400300000000 WWPN : 0x50050763031bd327 LUN status : 0x40000000 not ZFCP_STATUS_COMMON_UNBLOCKED Ready count : n not incremented yet Running count : 0x00000000 ERP want : 0x01 ERP need : 0xc1 ZFCP_ERP_ACTION_NONE Area : REC Tag : ersfs_3 LUN : 0x4045400300000000 WWPN : 0x50050763031bd327 LUN status : 0x41000000 Ready count : n+1 Running count : 0x00000000 ERP want : 0x01 ERP need : 0x01 ... Area : REC Level : 4 only with increased trace level Tag : ertru_l LUN : 0x4045400300000000 WWPN : 0x50050763031bd327 LUN status : 0x40000000 Request ID : 0x0000000000000000 ERP status : 0x01800000 ERP step : 0x1000 ERP action : 0x01 ERP count : 0x00 NOT followed by a trace record with tag "scpaddy" for WWPN 0x50050763031bd327. Signed-off-by: Steffen Maier Fixes: 6f2ce1c6af37 ("scsi: zfcp: fix rport unblock race with LUN recovery") Cc: #2.6.32+ Reviewed-by: Jens Remus Reviewed-by: Benjamin Block Signed-off-by: Martin K. Petersen Signed-off-by: Greg Kroah-Hartman --- drivers/s390/scsi/zfcp_erp.c | 3 +++ 1 file changed, 3 insertions(+) --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c @@ -1341,6 +1341,9 @@ static void zfcp_erp_try_rport_unblock(s struct zfcp_scsi_dev *zsdev = sdev_to_zfcp(sdev); int lun_status; + if (sdev->sdev_state == SDEV_DEL || + sdev->sdev_state == SDEV_CANCEL) + continue; if (zsdev->port != port) continue; /* LUN under port of interest */