#ifndef LLC_S_EV_H #define LLC_S_EV_H /* * Copyright (c) 1997 by Procom Technology,Inc. * 2001 by Arnaldo Carvalho de Melo * * This program can be redistributed or modified under the terms of the * GNU General Public License as published by the Free Software Foundation. * This program is distributed without any warranty or implied warranty * of merchantability or fitness for a particular purpose. * * See the GNU General Public License for more details. */ #include /* Defines SAP component events */ /* Types of events (possible values in 'ev->type') */ #define LLC_SAP_EV_TYPE_SIMPLE 1 #define LLC_SAP_EV_TYPE_CONDITION 2 #define LLC_SAP_EV_TYPE_PRIM 3 #define LLC_SAP_EV_TYPE_PDU 4 /* command/response PDU */ #define LLC_SAP_EV_TYPE_ACK_TMR 5 #define LLC_SAP_EV_TYPE_RPT_STATUS 6 #define LLC_SAP_EV_ACTIVATION_REQ 1 #define LLC_SAP_EV_RX_UI 2 #define LLC_SAP_EV_UNITDATA_REQ 3 #define LLC_SAP_EV_XID_REQ 4 #define LLC_SAP_EV_RX_XID_C 5 #define LLC_SAP_EV_RX_XID_R 6 #define LLC_SAP_EV_TEST_REQ 7 #define LLC_SAP_EV_RX_TEST_C 8 #define LLC_SAP_EV_RX_TEST_R 9 #define LLC_SAP_EV_DEACTIVATION_REQ 10 struct llc_sap_state_ev { u8 prim; u8 prim_type; u8 type; u8 reason; u8 ind_cfm_flag; struct llc_addr saddr; struct llc_addr daddr; }; static __inline__ struct llc_sap_state_ev *llc_sap_ev(struct sk_buff *skb) { return (struct llc_sap_state_ev *)skb->cb; } struct llc_sap; typedef int (*llc_sap_ev_t)(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_activation_req(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_rx_ui(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_unitdata_req(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_xid_req(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_rx_xid_c(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_rx_xid_r(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_test_req(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_rx_test_c(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_rx_test_r(struct llc_sap *sap, struct sk_buff *skb); int llc_sap_ev_deactivation_req(struct llc_sap *sap, struct sk_buff *skb); #endif /* LLC_S_EV_H */ '>author
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2016-11-27 15:12:39 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2016-12-01 17:21:38 -0500
commit54e4a0dfa25d9365c4e80a639e80d9213eb6edbe (patch)
tree5d1004f5fc0f7e1529e323524eda755e69ec08bd
parent9a837856cf612d83e9ede7081972a2fa78de6921 (diff)
pNFS: Fix a deadlock between read resends and layoutreturn
We must not call nfs_pageio_init_read() on a new nfs_pageio_descriptor while holding a reference to a layout segment, as that can deadlock pnfs_update_layout(). Fixes: d67ae825a59d6 ("pnfs/flexfiles: Add the FlexFile Layout Driver") Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Cc: stable@vger.kernel.org # v4.0+