nvme-fc: move remote port get/put/free location
authorJames Smart <jsmart2021@gmail.com>
Wed, 27 Sep 2017 04:50:45 +0000 (21:50 -0700)
committerChristoph Hellwig <hch@lst.de>
Thu, 5 Oct 2017 08:02:47 +0000 (10:02 +0200)
move nvme_fc_rport_get/put and rport free to higher in the file to
avoid adding prototypes to resolve references in upcoming code additions

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

index 2dc9932e48182d1b6861196a4be25bdd5833a3b8..b8e0822127c1acc11cf94495edd10164fad60cd7 100644 (file)
@@ -489,6 +489,45 @@ nvme_fc_signal_discovery_scan(struct nvme_fc_lport *lport,
        kobject_uevent_env(&fc_udev_device->kobj, KOBJ_CHANGE, envp);
 }
 
+static void
+nvme_fc_free_rport(struct kref *ref)
+{
+       struct nvme_fc_rport *rport =
+               container_of(ref, struct nvme_fc_rport, ref);
+       struct nvme_fc_lport *lport =
+                       localport_to_lport(rport->remoteport.localport);
+       unsigned long flags;
+
+       WARN_ON(rport->remoteport.port_state != FC_OBJSTATE_DELETED);
+       WARN_ON(!list_empty(&rport->ctrl_list));
+
+       /* remove from lport list */
+       spin_lock_irqsave(&nvme_fc_lock, flags);
+       list_del(&rport->endp_list);
+       spin_unlock_irqrestore(&nvme_fc_lock, flags);
+
+       /* let the LLDD know we've finished tearing it down */
+       lport->ops->remoteport_delete(&rport->remoteport);
+
+       ida_simple_remove(&lport->endp_cnt, rport->remoteport.port_num);
+
+       kfree(rport);
+
+       nvme_fc_lport_put(lport);
+}
+
+static void
+nvme_fc_rport_put(struct nvme_fc_rport *rport)
+{
+       kref_put(&rport->ref, nvme_fc_free_rport);
+}
+
+static int
+nvme_fc_rport_get(struct nvme_fc_rport *rport)
+{
+       return kref_get_unless_zero(&rport->ref);
+}
+
 /**
  * nvme_fc_register_remoteport - transport entry point called by an
  *                              LLDD to register the existence of a NVME
@@ -568,45 +607,6 @@ out_reghost_failed:
 }
 EXPORT_SYMBOL_GPL(nvme_fc_register_remoteport);
 
-static void
-nvme_fc_free_rport(struct kref *ref)
-{
-       struct nvme_fc_rport *rport =
-               container_of(ref, struct nvme_fc_rport, ref);
-       struct nvme_fc_lport *lport =
-                       localport_to_lport(rport->remoteport.localport);
-       unsigned long flags;
-
-       WARN_ON(rport->remoteport.port_state != FC_OBJSTATE_DELETED);
-       WARN_ON(!list_empty(&rport->ctrl_list));
-
-       /* remove from lport list */
-       spin_lock_irqsave(&nvme_fc_lock, flags);
-       list_del(&rport->endp_list);
-       spin_unlock_irqrestore(&nvme_fc_lock, flags);
-
-       /* let the LLDD know we've finished tearing it down */
-       lport->ops->remoteport_delete(&rport->remoteport);
-
-       ida_simple_remove(&lport->endp_cnt, rport->remoteport.port_num);
-
-       kfree(rport);
-
-       nvme_fc_lport_put(lport);
-}
-
-static void
-nvme_fc_rport_put(struct nvme_fc_rport *rport)
-{
-       kref_put(&rport->ref, nvme_fc_free_rport);
-}
-
-static int
-nvme_fc_rport_get(struct nvme_fc_rport *rport)
-{
-       return kref_get_unless_zero(&rport->ref);
-}
-
 static int
 nvme_fc_abort_lsops(struct nvme_fc_rport *rport)
 {