scsi: zfcp: Fix sysfs roll-back on error in zfcp_adapter_enqueue()
authorJulian Wiedmann <jwi@linux.ibm.com>
Wed, 14 Apr 2021 17:08:01 +0000 (19:08 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 16 Apr 2021 02:19:39 +0000 (22:19 -0400)
commitab1fa88062f8d1d9e8947719b8ed3ab48a60476c
tree745362fcf510bd034366df38e3b080ddc6f3a96e
parent8824db894dd1da48bad363612577ef410a5d1828
scsi: zfcp: Fix sysfs roll-back on error in zfcp_adapter_enqueue()

When zfcp_adapter_enqueue() fails to create the zfcp_sysfs_adapter_attrs
group, it calls zfcp_adapter_unregister() to tear down the adapter state
again. This then unconditionally attempts to remove the
zfcp_sysfs_adapter_attrs group, resulting in a "group not found" WARN from
sysfs code.

Avoid this by copying most of zfcp_adapter_unregister() into the error
path, allowing for more fine-granular roll-back. Then skip the sysfs
tear-down steps if we haven't progressed this far in the initialization.

Link: https://lore.kernel.org/r/790922cc3af075795fff9a4b787e6bda19bdb3be.1618417667.git.bblock@linux.ibm.com
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Reviewed-by: Steffen Maier <maier@linux.ibm.com>
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/s390/scsi/zfcp_aux.c