Message ID | 20200401090120.24958-1-dwagner@suse.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | scsi: qedf: Simplify mutex_unlock() usage | expand |
On Wed, Apr 01, 2020 at 11:01:20AM +0200, Daniel Wagner wrote: > --- a/drivers/scsi/qedf/qedf_els.c > +++ b/drivers/scsi/qedf/qedf_els.c > @@ -388,12 +388,11 @@ void qedf_restart_rport(struct qedf_rport *fcport) > mutex_lock(&lport->disc.disc_mutex); > /* Recreate the rport and log back in */ > rdata = fc_rport_create(lport, port_id); > + mutex_unlock(&lport->disc.disc_mutex); > if (rdata) { > - mutex_unlock(&lport->disc.disc_mutex); > fc_rport_login(rdata); > fcport->rdata = rdata; > } else { > - mutex_unlock(&lport->disc.disc_mutex); > fcport->rdata = NULL; > } > } Looking at it again, I think we could even do mutex_unlock(&lport->disc.disc_mutex); if (rdata) fc_rport_login(rdata); fcport->rdata = rdata;
diff --git a/drivers/scsi/qedf/qedf_els.c b/drivers/scsi/qedf/qedf_els.c index 87e169dcebdb..c60eede92145 100644 --- a/drivers/scsi/qedf/qedf_els.c +++ b/drivers/scsi/qedf/qedf_els.c @@ -388,12 +388,11 @@ void qedf_restart_rport(struct qedf_rport *fcport) mutex_lock(&lport->disc.disc_mutex); /* Recreate the rport and log back in */ rdata = fc_rport_create(lport, port_id); + mutex_unlock(&lport->disc.disc_mutex); if (rdata) { - mutex_unlock(&lport->disc.disc_mutex); fc_rport_login(rdata); fcport->rdata = rdata; } else { - mutex_unlock(&lport->disc.disc_mutex); fcport->rdata = NULL; } }
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. Cc: Hannes Reinecke <hare@suse.com> Cc: Saurav Kashyap <skashyap@marvell.com> Signed-off-by: Daniel Wagner <dwagner@suse.de> --- drivers/scsi/qedf/qedf_els.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)