With this early return due to zfcp_unit child(ren), we don't use the
zfcp_port reference from the earlier zfcp_get_port_by_wwpn()any more
and need to put it.

Signed-off-by: Steffen Maier <ma...@linux.ibm.com>
Fixes: d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove")
Cc: <sta...@vger.kernel.org> #3.7+
Reviewed-by: Jens Remus <jre...@linux.ibm.com>
Reviewed-by: Benjamin Block <bbl...@linux.ibm.com>
---
 drivers/s390/scsi/zfcp_sysfs.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/s390/scsi/zfcp_sysfs.c b/drivers/s390/scsi/zfcp_sysfs.c
index b277be6f7611..2d78732b270b 100644
--- a/drivers/s390/scsi/zfcp_sysfs.c
+++ b/drivers/s390/scsi/zfcp_sysfs.c
@@ -261,6 +261,7 @@ static ssize_t zfcp_sysfs_port_remove_store(struct device 
*dev,
        if (atomic_read(&port->units) > 0) {
                retval = -EBUSY;
                mutex_unlock(&zfcp_sysfs_port_units_mutex);
+               put_device(&port->dev); /* undo zfcp_get_port_by_wwpn() */
                goto out;
        }
        /* port is about to be removed, so no more unit_add */
-- 
2.17.1

Reply via email to