Lines Matching full:pd
42 static void l2tp_dfs_next_tunnel(struct l2tp_dfs_seq_data *pd) in l2tp_dfs_next_tunnel() argument
45 if (pd->tunnel) in l2tp_dfs_next_tunnel()
46 l2tp_tunnel_dec_refcount(pd->tunnel); in l2tp_dfs_next_tunnel()
48 pd->tunnel = l2tp_tunnel_get_nth(pd->net, pd->tunnel_idx); in l2tp_dfs_next_tunnel()
49 pd->tunnel_idx++; in l2tp_dfs_next_tunnel()
52 static void l2tp_dfs_next_session(struct l2tp_dfs_seq_data *pd) in l2tp_dfs_next_session() argument
55 if (pd->session) in l2tp_dfs_next_session()
56 l2tp_session_dec_refcount(pd->session); in l2tp_dfs_next_session()
58 pd->session = l2tp_session_get_nth(pd->tunnel, pd->session_idx); in l2tp_dfs_next_session()
59 pd->session_idx++; in l2tp_dfs_next_session()
61 if (!pd->session) { in l2tp_dfs_next_session()
62 pd->session_idx = 0; in l2tp_dfs_next_session()
63 l2tp_dfs_next_tunnel(pd); in l2tp_dfs_next_session()
69 struct l2tp_dfs_seq_data *pd = SEQ_START_TOKEN; in l2tp_dfs_seq_start() local
76 pd = NULL; in l2tp_dfs_seq_start()
79 pd = m->private; in l2tp_dfs_seq_start()
81 if (!pd->tunnel) in l2tp_dfs_seq_start()
82 l2tp_dfs_next_tunnel(pd); in l2tp_dfs_seq_start()
84 l2tp_dfs_next_session(pd); in l2tp_dfs_seq_start()
87 if (!pd->tunnel && !pd->session) in l2tp_dfs_seq_start()
88 pd = NULL; in l2tp_dfs_seq_start()
91 return pd; in l2tp_dfs_seq_start()
102 struct l2tp_dfs_seq_data *pd = v; in l2tp_dfs_seq_stop() local
104 if (!pd || pd == SEQ_START_TOKEN) in l2tp_dfs_seq_stop()
110 if (pd->session) { in l2tp_dfs_seq_stop()
111 l2tp_session_dec_refcount(pd->session); in l2tp_dfs_seq_stop()
112 pd->session = NULL; in l2tp_dfs_seq_stop()
114 if (pd->tunnel) { in l2tp_dfs_seq_stop()
115 l2tp_tunnel_dec_refcount(pd->tunnel); in l2tp_dfs_seq_stop()
116 pd->tunnel = NULL; in l2tp_dfs_seq_stop()
235 struct l2tp_dfs_seq_data *pd = v; in l2tp_dfs_seq_show() local
253 if (!pd->session) in l2tp_dfs_seq_show()
254 l2tp_dfs_seq_tunnel_show(m, pd->tunnel); in l2tp_dfs_seq_show()
256 l2tp_dfs_seq_session_show(m, pd->session); in l2tp_dfs_seq_show()
271 struct l2tp_dfs_seq_data *pd; in l2tp_dfs_seq_open() local
275 pd = kzalloc(sizeof(*pd), GFP_KERNEL); in l2tp_dfs_seq_open()
276 if (!pd) in l2tp_dfs_seq_open()
282 pd->net = get_net_ns_by_pid(current->pid); in l2tp_dfs_seq_open()
283 if (IS_ERR(pd->net)) { in l2tp_dfs_seq_open()
284 rc = PTR_ERR(pd->net); in l2tp_dfs_seq_open()
293 seq->private = pd; in l2tp_dfs_seq_open()
299 put_net(pd->net); in l2tp_dfs_seq_open()
301 kfree(pd); in l2tp_dfs_seq_open()
307 struct l2tp_dfs_seq_data *pd; in l2tp_dfs_seq_release() local
311 pd = seq->private; in l2tp_dfs_seq_release()
312 if (pd->net) in l2tp_dfs_seq_release()
313 put_net(pd->net); in l2tp_dfs_seq_release()
314 kfree(pd); in l2tp_dfs_seq_release()