Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8025b5db authored by Joe Eykholt's avatar Joe Eykholt Committed by James Bottomley
Browse files

[SCSI] libfc: move rport_lookup into fc_rport.c



Move the libfc remote port lookup function into fc_rport.c.
This seems like the best place for it.

Signed-off-by: default avatarJoe Eykholt <jeykholt@cisco.com>
Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 8345592b
Loading
Loading
Loading
Loading
+0 −22
Original line number Original line Diff line number Diff line
@@ -52,25 +52,6 @@ static void fc_disc_timeout(struct work_struct *);
static void fc_disc_single(struct fc_disc *, struct fc_disc_port *);
static void fc_disc_single(struct fc_disc *, struct fc_disc_port *);
static void fc_disc_restart(struct fc_disc *);
static void fc_disc_restart(struct fc_disc *);


/**
 * fc_disc_lookup_rport() - lookup a remote port by port_id
 * @lport: Fibre Channel host port instance
 * @port_id: remote port port_id to match
 */
struct fc_rport_priv *fc_disc_lookup_rport(const struct fc_lport *lport,
					   u32 port_id)
{
	const struct fc_disc *disc = &lport->disc;
	struct fc_rport_priv *rdata;

	list_for_each_entry(rdata, &disc->rports, peers) {
		if (rdata->ids.port_id == port_id &&
		    rdata->rp_state != RPORT_ST_DELETE)
			return rdata;
	}
	return NULL;
}

/**
/**
 * fc_disc_stop_rports() - delete all the remote ports associated with the lport
 * fc_disc_stop_rports() - delete all the remote ports associated with the lport
 * @disc: The discovery job to stop rports on
 * @disc: The discovery job to stop rports on
@@ -714,9 +695,6 @@ int fc_disc_init(struct fc_lport *lport)
	if (!lport->tt.disc_recv_req)
	if (!lport->tt.disc_recv_req)
		lport->tt.disc_recv_req = fc_disc_recv_req;
		lport->tt.disc_recv_req = fc_disc_recv_req;


	if (!lport->tt.rport_lookup)
		lport->tt.rport_lookup = fc_disc_lookup_rport;

	disc = &lport->disc;
	disc = &lport->disc;
	INIT_DELAYED_WORK(&disc->disc_work, fc_disc_timeout);
	INIT_DELAYED_WORK(&disc->disc_work, fc_disc_timeout);
	mutex_init(&disc->disc_mutex);
	mutex_init(&disc->disc_mutex);
+20 −0
Original line number Original line Diff line number Diff line
@@ -86,6 +86,23 @@ static const char *fc_rport_state_names[] = {
	[RPORT_ST_DELETE] = "Delete",
	[RPORT_ST_DELETE] = "Delete",
};
};


/**
 * fc_rport_lookup() - lookup a remote port by port_id
 * @lport: Fibre Channel host port instance
 * @port_id: remote port port_id to match
 */
static struct fc_rport_priv *fc_rport_lookup(const struct fc_lport *lport,
					     u32 port_id)
{
	struct fc_rport_priv *rdata;

	list_for_each_entry(rdata, &lport->disc.rports, peers)
		if (rdata->ids.port_id == port_id &&
		    rdata->rp_state != RPORT_ST_DELETE)
			return rdata;
	return NULL;
}

/**
/**
 * fc_rport_create() - create remote port in INIT state.
 * fc_rport_create() - create remote port in INIT state.
 * @lport: local port.
 * @lport: local port.
@@ -1292,6 +1309,9 @@ static void fc_rport_flush_queue(void)


int fc_rport_init(struct fc_lport *lport)
int fc_rport_init(struct fc_lport *lport)
{
{
	if (!lport->tt.rport_lookup)
		lport->tt.rport_lookup = fc_rport_lookup;

	if (!lport->tt.rport_create)
	if (!lport->tt.rport_create)
		lport->tt.rport_create = fc_rport_create;
		lport->tt.rport_create = fc_rport_create;