diff options
author | Swen Schillig <swen@vnet.ibm.com> | 2009-11-24 16:53:59 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 12:02:02 -0600 |
commit | f3450c7b917201bb49d67032e9f60d5125675d6a (patch) | |
tree | 404b1c23490b0a5ba3d6cbbb14e64381a12a108a /drivers/s390/scsi/zfcp_ccw.c | |
parent | ecf0c7721b104c0ce9c8ca534c911f6310cf92a8 (diff) | |
download | op-kernel-dev-f3450c7b917201bb49d67032e9f60d5125675d6a.zip op-kernel-dev-f3450c7b917201bb49d67032e9f60d5125675d6a.tar.gz |
[SCSI] zfcp: Replace local reference counting with common kref
Replace the local reference counting by already available mechanisms
offered by kref. Where possible existing device structures were used,
including the same functionality.
Signed-off-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_ccw.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_ccw.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c index aca2047..c89dbe2 100644 --- a/drivers/s390/scsi/zfcp_ccw.c +++ b/drivers/s390/scsi/zfcp_ccw.c @@ -128,13 +128,15 @@ static void zfcp_ccw_remove(struct ccw_device *ccw_device) write_unlock_irq(&adapter->port_list_lock); mutex_unlock(&zfcp_data.config_mutex); - list_for_each_entry_safe(port, p, &port_remove_lh, list) { - list_for_each_entry_safe(unit, u, &unit_remove_lh, list) - zfcp_unit_dequeue(unit); - zfcp_port_dequeue(port); - } - wait_event(adapter->remove_wq, atomic_read(&adapter->refcount) == 0); - zfcp_adapter_dequeue(adapter); + list_for_each_entry_safe(unit, u, &unit_remove_lh, list) + zfcp_device_unregister(&unit->sysfs_device, + &zfcp_sysfs_unit_attrs); + + list_for_each_entry_safe(port, p, &port_remove_lh, list) + zfcp_device_unregister(&port->sysfs_device, + &zfcp_sysfs_port_attrs); + + kref_put(&adapter->ref, zfcp_adapter_release); } /** |