The commit 
6d1368e8f987 ("scsi: qedf: fixup locking in
qedf_restart_rport()") introduced the lock. Though the lock protects
only the fc_rport_create() call. Thus, we can move the mutex unlock up
before the if statement and drop the else body.
Link: https://lore.kernel.org/r/20200403092717.19779-1-dwagner@suse.de
Cc: Hannes Reinecke <hare@suse.com>
Cc: Saurav Kashyap <skashyap@marvell.com>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
                mutex_lock(&lport->disc.disc_mutex);
                /* Recreate the rport and log back in */
                rdata = fc_rport_create(lport, port_id);
-               if (rdata) {
-                       mutex_unlock(&lport->disc.disc_mutex);
+               mutex_unlock(&lport->disc.disc_mutex);
+               if (rdata)
                        fc_rport_login(rdata);
-                       fcport->rdata = rdata;
-               } else {
-                       mutex_unlock(&lport->disc.disc_mutex);
-                       fcport->rdata = NULL;
-               }
+               fcport->rdata = rdata;
        }
        clear_bit(QEDF_RPORT_IN_RESET, &fcport->flags);
 }