[SCSI] zfcp: Call get_device on port before calling put_device

zfcp_unit_release calls put_device on the port. Ensure that get_device
has been called before possibly triggering the release function
through put_device or device_unregister.

Reviewed-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>
This commit is contained in:
Christof Schmitt 2010-10-05 17:12:54 +02:00 committed by James Bottomley
parent 0df138476c
commit 1a9708cd35

View File

@ -142,6 +142,8 @@ int zfcp_unit_add(struct zfcp_port *port, u64 fcp_lun)
return -ENOMEM; return -ENOMEM;
} }
get_device(&port->dev);
if (device_register(&unit->dev)) { if (device_register(&unit->dev)) {
put_device(&unit->dev); put_device(&unit->dev);
return -ENOMEM; return -ENOMEM;
@ -152,8 +154,6 @@ int zfcp_unit_add(struct zfcp_port *port, u64 fcp_lun)
return -EINVAL; return -EINVAL;
} }
get_device(&port->dev);
write_lock_irq(&port->unit_list_lock); write_lock_irq(&port->unit_list_lock);
list_add_tail(&unit->list, &port->unit_list); list_add_tail(&unit->list, &port->unit_list);
write_unlock_irq(&port->unit_list_lock); write_unlock_irq(&port->unit_list_lock);