Messages in this thread | | | Date | Tue, 19 Dec 2023 08:26:36 +0100 | Subject | Re: [PATCH v3 05/16] nvmet-fcloop: Remove remote port from list when unlinking | From | Hannes Reinecke <> |
| |
On 12/18/23 16:30, Daniel Wagner wrote: > The remote port is removed too late from fcloop_nports list. Remove it > when port is unregistered. > > This prevents a busy loop in fcloop_exit, because it is possible the > remote port is found in the list and thus we will never progress. > > The kernel log will be spammed with > > nvme_fcloop: fcloop_exit: Failed deleting remote port > nvme_fcloop: fcloop_exit: Failed deleting target port > > Signed-off-by: Daniel Wagner <dwagner@suse.de> > --- > drivers/nvme/target/fcloop.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c > index c65a73433c05..ead349af30f1 100644 > --- a/drivers/nvme/target/fcloop.c > +++ b/drivers/nvme/target/fcloop.c > @@ -995,11 +995,6 @@ fcloop_nport_free(struct kref *ref) > { > struct fcloop_nport *nport = > container_of(ref, struct fcloop_nport, ref); > - unsigned long flags; > - > - spin_lock_irqsave(&fcloop_lock, flags); > - list_del(&nport->nport_list); > - spin_unlock_irqrestore(&fcloop_lock, flags); > > kfree(nport); > } > @@ -1357,6 +1352,8 @@ __unlink_remote_port(struct fcloop_nport *nport) > nport->tport->remoteport = NULL; > nport->rport = NULL; > > + list_del(&nport->nport_list); > + > return rport; > } > Reviewed-by: Hannes Reinecke <hare@suse.de>
Cheers,
Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@suse.de +49 911 74053 688 SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), GF: Ivo Totev, Andrew McDonald, Werner Knoblich
| |