// SPDX-License-Identifier: GPL-2.0-only /* * Copyright(c) 2009 Intel Corporation. All rights reserved. * * Maintained at www.Open-FCoE.org
*/
/* * NPIV VN_Port helper functions for libfc
*/
#include <scsi/libfc.h> #include <linux/export.h>
/** * libfc_vport_create() - Create a new NPIV vport instance * @vport: fc_vport structure from scsi_transport_fc * @privsize: driver private data size to allocate along with the Scsi_Host
*/
/** * fc_vport_id_lookup() - find NPIV lport that matches a given fabric ID * @n_port: Top level N_Port which may have multiple NPIV VN_Ports * @port_id: Fabric ID to find a match for * * Returns: matching lport pointer or NULL if there is no match
*/ struct fc_lport *fc_vport_id_lookup(struct fc_lport *n_port, u32 port_id)
{ struct fc_lport *lport = NULL; struct fc_lport *vn_port;
if (n_port->port_id == port_id) return n_port;
if (port_id == FC_FID_FLOGI) return n_port; /* for point-to-point */
/* * When setting the link state of vports during an lport state change, it's * necessary to hold the lp_mutex of both the N_Port and the VN_Port. * This tells the lockdep engine to treat the nested locking of the VN_Port * as a different lock class.
*/ enum libfc_lport_mutex_class {
LPORT_MUTEX_NORMAL = 0,
LPORT_MUTEX_VN_PORT = 1,
};
/** * __fc_vport_setlink() - update link and status on a VN_Port * @n_port: parent N_Port * @vn_port: VN_Port to update * * Locking: must be called with both the N_Port and VN_Port lp_mutex held
*/ staticvoid __fc_vport_setlink(struct fc_lport *n_port, struct fc_lport *vn_port)
{ struct fc_vport *vport = vn_port->vport;
/** * fc_vports_linkchange() - change the link state of all vports * @n_port: Parent N_Port that has changed state * * Locking: called with the n_port lp_mutex held
*/ void fc_vports_linkchange(struct fc_lport *n_port)
{ struct fc_lport *vn_port;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.