]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
authorSteffen Maier <maier@linux.ibm.com>
Thu, 23 May 2019 13:23:45 +0000 (15:23 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 30 May 2019 01:50:51 +0000 (21:50 -0400)
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() anymore and
need to put it.

Signed-off-by: Steffen Maier <maier@linux.ibm.com>
Fixes: d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove")
Cc: <stable@vger.kernel.org> #3.7+
Reviewed-by: Jens Remus <jremus@linux.ibm.com>
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/s390/scsi/zfcp_sysfs.c

index b277be6f7611ccc9925bc8148416637f5fdb6b58..2d78732b270b7b03a80a1f7fc5701c1e812dd3b6 100644 (file)
@@ -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 */