]> git.baikalelectronics.ru Git - kernel.git/commit
nvmet-fc: cleanup nvmet add_port/remove_port
authorJames Smart <jsmart2021@gmail.com>
Wed, 29 Nov 2017 23:11:55 +0000 (15:11 -0800)
committerChristoph Hellwig <hch@lst.de>
Mon, 8 Jan 2018 10:01:56 +0000 (11:01 +0100)
commit9f0538f52ccd81044bf7190c3b0de5b1d762e4a2
treec9655f7a183f961974a7638a88c27a3eb2efbd6e
parentab98a57903f0c85a20270962612323cb79822e69
nvmet-fc: cleanup nvmet add_port/remove_port

The current fc transport add_port routine validates that there is a
matching port to the target port config. It then takes a reference
on the targetport. The del_port removes the reference.

Unfortunately, if the LLDD undergoes a hw reset or driver unload and
wants to unreg the targetport, due to the reference, the targetport
effectively can't be removed. It requires the admin to remove the
port from the nvmet config first, which calls the del_port.
Note: it appears nvmetcli clear skips over the del_port call (I'm
not attempting to change that).

There's no real reason to take the reference. With FC, there is nothing
to enable or disable as the presence of the FC targetport implicitly
means its enabled, and removal of the targtport means its disabled.

Change add_port to simply validate and change remove_port to a noop.
No references are taken on the targetport.

Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/fc.c