]> www.infradead.org Git - nvme.git/commitdiff
nvmet-fc: update tgtport ref per assoc
authorDaniel Wagner <wagi@kernel.org>
Tue, 8 Apr 2025 15:29:08 +0000 (17:29 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 9 Apr 2025 11:03:56 +0000 (13:03 +0200)
We need to take for each unique association a reference.
nvmet_fc_alloc_hostport for each newly created association.

Signed-off-by: Daniel Wagner <wagi@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/fc.c

index 6d64dadcb356b78b522d0deaa433cc745bfcd8f6..42613280c06e82a0236520d93470ec6fdede37ea 100644 (file)
@@ -1127,6 +1127,7 @@ nvmet_fc_alloc_target_assoc(struct nvmet_fc_tgtport *tgtport, void *hosthandle)
                goto out_ida;
 
        assoc->tgtport = tgtport;
+       nvmet_fc_tgtport_get(tgtport);
        assoc->a_id = idx;
        INIT_LIST_HEAD(&assoc->a_list);
        kref_init(&assoc->ref);
@@ -1228,6 +1229,8 @@ nvmet_fc_delete_target_assoc(struct nvmet_fc_tgt_assoc *assoc)
        dev_info(tgtport->dev,
                "{%d:%d} Association deleted\n",
                tgtport->fc_target_port.port_num, assoc->a_id);
+
+       nvmet_fc_tgtport_put(tgtport);
 }
 
 static struct nvmet_fc_tgt_assoc *