linux/drivers/nvme/host
James Smart 5533d42480 nvme-fc: Reattach to localports on re-registration
If the LLDD resets or detaches from an fc port, the LLDD will
deregister all remoteports seen by the fc port and deregister the
localport associated with the fc port. The teardown of the localport
structure will be held off due to reference counting until all the
remoteports are removed (and they are held off until all
controllers/associations to terminated). Currently, if the fc port
is reinit/reattached and registered again as a localport it is
treated as an independent entity from the prior localport and all
prior remoteports and controllers cannot be revived. They are
created as new and separate entities.

This patch changes the localport registration to look at the known
localports that are waiting to be torndown. If they are the same port
based on wwn's, the local port is transitioned out of the teardown
state.  This allows the remote ports and controller connections to
be reestablished and resumed as long as the localport can also be
reregistered within the timeout windows.

The patch adds a new routine nvme_fc_attach_to_unreg_lport() with
the functionality and moves the lport get/put routines to avoid
forward references.

Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2017-08-28 23:00:40 +03:00
..
core.c nvme: rename AMS symbolic constants to fit specification 2017-08-28 23:00:39 +03:00
fabrics.c nvme-fabrics: log a warning if hostid is invalid 2017-08-28 23:00:37 +03:00
fabrics.h nvme: read the subsystem NQN from Identify Controller 2017-06-28 08:14:13 -06:00
fc.c nvme-fc: Reattach to localports on re-registration 2017-08-28 23:00:40 +03:00
Kconfig nvme: Remove SCSI translations 2017-06-28 08:14:13 -06:00
lightnvm.c block: replace bi_bdev with a gendisk pointer and partitions index 2017-08-23 12:49:55 -06:00
Makefile nvme: Makefile: remove dead build rule 2017-06-29 09:43:23 -06:00
nvme.h nvme: Add admin_tagset pointer to nvme_ctrl 2017-08-28 21:38:24 +02:00
pci.c nvme: Add admin_tagset pointer to nvme_ctrl 2017-08-28 21:38:24 +02:00
rdma.c nvme-rdma: call ops->reg_read64 instead of nvmf_reg_read64 2017-08-28 23:00:36 +03:00