summaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_sysfs.c
diff options
context:
space:
mode:
authorQinglang Miao <miaoqinglang@huawei.com>2021-04-14 19:08:03 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2021-04-16 04:19:40 +0200
commitbe46e39ae3be8cde8dd0d09d7c0f8eed443747ab (patch)
treef03f5cb5ec437b3b84f25eb3312897fac2918bdb /drivers/s390/scsi/zfcp_sysfs.c
parentscsi: zfcp: Clean up sysfs code for SFP diagnostics (diff)
downloadlinux-be46e39ae3be8cde8dd0d09d7c0f8eed443747ab.tar.xz
linux-be46e39ae3be8cde8dd0d09d7c0f8eed443747ab.zip
scsi: zfcp: Move the position of put_device()
Place the put_device() call after device_unregister() in both zfcp_unit_remove() and zfcp_sysfs_port_remove_store() to make it more natural. put_device() ought to be the last time we touch the object in both functions. Add comments after put_device() to make code clearer. Link: https://lore.kernel.org/r/0a568c7733ba0f1dde28b0c663b90270d44dd540.1618417667.git.bblock@linux.ibm.com Suggested-by: Steffen Maier <maier@linux.ibm.com> Suggested-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Qinglang Miao <miaoqinglang@huawei.com> Signed-off-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_sysfs.c')
-rw-r--r--drivers/s390/scsi/zfcp_sysfs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c
index f76946dcbd59..544efd4c42f0 100644
--- a/drivers/s390/scsi/zfcp_sysfs.c
+++ b/drivers/s390/scsi/zfcp_sysfs.c
@@ -327,10 +327,10 @@ static ssize_t zfcp_sysfs_port_remove_store(struct device *dev,
list_del(&port->list);
write_unlock_irq(&adapter->port_list_lock);
- put_device(&port->dev);
-
zfcp_erp_port_shutdown(port, 0, "syprs_1");
device_unregister(&port->dev);
+
+ put_device(&port->dev); /* undo zfcp_get_port_by_wwpn() */
out:
zfcp_ccw_adapter_put(adapter);
return retval ? retval : (ssize_t) count;