Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 3226

kernel-2.6.18-194.11.1.el5.src.rpm

From: Hans-Joachim Picht <hpicht@redhat.com>
Date: Tue, 20 May 2008 13:48:49 +0200
Subject: [s390] zfcp: deadlock in slave_destroy handler
Message-id: 20080520114849.GH16866@redhat.com
O-Subject: [RHEL5 U3 PATCH 3/4] s390 - zfcp: Deadlock in slave_destroy handler.
Bugzilla: 447329
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>

Description
============

Adding or removing of zfcp units is not possible after
the zfcp channel path was offline for exactly 60 seconds.

When the channel path is offline, the Fibre Channel remote
ports are removed after a 60 seconds timeout. When this
removal happens in parallel to the channel path going online
again, the slave_destroy handler can deadlock with the erp
thread.

The problem is fixed removing the zfcp_erp_wait call from the slave_destroy handler.

Bugzilla
=========

BZ 447329
https://bugzilla.redhat.com/show_bug.cgi?id=447329

Upstream status of the patch:
=============================

The patch is included in linux-2.6 as git
commit id  6071d7ec36054e78f02f7d5a66c3784aeb65ce92

Test status:
============

The patch has been tested and fixes the problem.
The fix was verified by the IBM test team.

Please ACK.

With best regards,

Hans

diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index d97cb3e..050f7c8 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -181,7 +181,6 @@ static void zfcp_scsi_slave_destroy(struct scsi_device *sdpnt)
 	struct zfcp_unit *unit = (struct zfcp_unit *) sdpnt->hostdata;
 
 	if (unit) {
-		zfcp_erp_wait(unit->port->adapter);
 		atomic_clear_mask(ZFCP_STATUS_UNIT_REGISTERED, &unit->status);
 		sdpnt->hostdata = NULL;
 		unit->device = NULL;