[SCSI] zfcp: Remove SCSI devices when removing complete adapter
authorChristof Schmitt <christof.schmitt@de.ibm.com>
Mon, 5 Nov 2007 11:37:46 +0000 (12:37 +0100)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 12 Jan 2008 00:22:40 +0000 (18:22 -0600)
The common I/O layer can call remove a handler to inform zfcp
that a device disappeared. The handler zfcp_ccw_remove then
removes all unit, port and the adapter data structures. Removing
the units requires that the SCSI devices are removed first.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/s390/scsi/zfcp_ccw.c

index e01cbf152a81d3622a5d4a607b103ab472e607d0..a6a29a24d28a4bfc84f2dfd4142b39ceb34657ae 100644 (file)
@@ -120,6 +120,9 @@ zfcp_ccw_remove(struct ccw_device *ccw_device)
 
        list_for_each_entry_safe(port, p, &adapter->port_remove_lh, list) {
                list_for_each_entry_safe(unit, u, &port->unit_remove_lh, list) {
+                       if (atomic_test_mask(ZFCP_STATUS_UNIT_REGISTERED,
+                               &unit->status))
+                               scsi_remove_device(unit->device);
                        zfcp_unit_dequeue(unit);
                }
                zfcp_port_dequeue(port);