/** * Free Fibre Channel ELS transaction * * @v refcnt Reference count */ static void fc_els_free ( struct refcnt *refcnt ) { struct fc_els *els = container_of ( refcnt, struct fc_els, refcnt ); assert ( ! process_running ( &els->process ) ); fc_port_put ( els->port ); free ( els ); }
/** * Free Fibre Channel exchange * * @v refcnt Reference count */ static void fc_xchg_free ( struct refcnt *refcnt ) { struct fc_exchange *xchg = container_of ( refcnt, struct fc_exchange, refcnt ); assert ( ! timer_running ( &xchg->timer ) ); assert ( list_empty ( &xchg->list ) ); fc_port_put ( xchg->port ); free ( xchg ); }