|
@@ -2530,13 +2530,17 @@ nvmet_fc_remove_port(struct nvmet_port *port)
|
|
|
{
|
|
|
struct nvmet_fc_tgtport *tgtport = port->priv;
|
|
|
unsigned long flags;
|
|
|
+ bool matched = false;
|
|
|
|
|
|
spin_lock_irqsave(&nvmet_fc_tgtlock, flags);
|
|
|
if (tgtport->port == port) {
|
|
|
- nvmet_fc_tgtport_put(tgtport);
|
|
|
+ matched = true;
|
|
|
tgtport->port = NULL;
|
|
|
}
|
|
|
spin_unlock_irqrestore(&nvmet_fc_tgtlock, flags);
|
|
|
+
|
|
|
+ if (matched)
|
|
|
+ nvmet_fc_tgtport_put(tgtport);
|
|
|
}
|
|
|
|
|
|
static struct nvmet_fabrics_ops nvmet_fc_tgt_fcp_ops = {
|