Lines Matching refs:sk

11 static int sk_diag_dump_name(struct sock *sk, struct sk_buff *nlskb)  in sk_diag_dump_name()  argument
13 struct unix_address *addr = unix_sk(sk)->addr; in sk_diag_dump_name()
22 static int sk_diag_dump_vfs(struct sock *sk, struct sk_buff *nlskb) in sk_diag_dump_vfs() argument
24 struct dentry *dentry = unix_sk(sk)->path.dentry; in sk_diag_dump_vfs()
38 static int sk_diag_dump_peer(struct sock *sk, struct sk_buff *nlskb) in sk_diag_dump_peer() argument
43 peer = unix_peer_get(sk); in sk_diag_dump_peer()
56 static int sk_diag_dump_icons(struct sock *sk, struct sk_buff *nlskb) in sk_diag_dump_icons() argument
63 if (sk->sk_state == TCP_LISTEN) { in sk_diag_dump_icons()
64 spin_lock(&sk->sk_receive_queue.lock); in sk_diag_dump_icons()
67 sk->sk_receive_queue.qlen * sizeof(u32)); in sk_diag_dump_icons()
73 skb_queue_walk(&sk->sk_receive_queue, skb) { in sk_diag_dump_icons()
76 req = skb->sk; in sk_diag_dump_icons()
87 spin_unlock(&sk->sk_receive_queue.lock); in sk_diag_dump_icons()
93 spin_unlock(&sk->sk_receive_queue.lock); in sk_diag_dump_icons()
97 static int sk_diag_show_rqlen(struct sock *sk, struct sk_buff *nlskb) in sk_diag_show_rqlen() argument
101 if (sk->sk_state == TCP_LISTEN) { in sk_diag_show_rqlen()
102 rql.udiag_rqueue = sk->sk_receive_queue.qlen; in sk_diag_show_rqlen()
103 rql.udiag_wqueue = sk->sk_max_ack_backlog; in sk_diag_show_rqlen()
105 rql.udiag_rqueue = (u32) unix_inq_len(sk); in sk_diag_show_rqlen()
106 rql.udiag_wqueue = (u32) unix_outq_len(sk); in sk_diag_show_rqlen()
112 static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_req *req, in sk_diag_fill() argument
125 rep->udiag_type = sk->sk_type; in sk_diag_fill()
126 rep->udiag_state = sk->sk_state; in sk_diag_fill()
129 sock_diag_save_cookie(sk, rep->udiag_cookie); in sk_diag_fill()
132 sk_diag_dump_name(sk, skb)) in sk_diag_fill()
136 sk_diag_dump_vfs(sk, skb)) in sk_diag_fill()
140 sk_diag_dump_peer(sk, skb)) in sk_diag_fill()
144 sk_diag_dump_icons(sk, skb)) in sk_diag_fill()
148 sk_diag_show_rqlen(sk, skb)) in sk_diag_fill()
152 sock_diag_put_meminfo(sk, skb, UNIX_DIAG_MEMINFO)) in sk_diag_fill()
155 if (nla_put_u8(skb, UNIX_DIAG_SHUTDOWN, sk->sk_shutdown)) in sk_diag_fill()
166 static int sk_diag_dump(struct sock *sk, struct sk_buff *skb, struct unix_diag_req *req, in sk_diag_dump() argument
171 unix_state_lock(sk); in sk_diag_dump()
172 sk_ino = sock_i_ino(sk); in sk_diag_dump()
173 unix_state_unlock(sk); in sk_diag_dump()
178 return sk_diag_fill(sk, skb, req, portid, seq, flags, sk_ino); in sk_diag_dump()
185 struct net *net = sock_net(skb->sk); in unix_diag_dump()
196 struct sock *sk; in unix_diag_dump() local
199 sk_for_each(sk, &unix_socket_table[slot]) { in unix_diag_dump()
200 if (!net_eq(sock_net(sk), net)) in unix_diag_dump()
204 if (!(req->udiag_states & (1 << sk->sk_state))) in unix_diag_dump()
206 if (sk_diag_dump(sk, skb, req, in unix_diag_dump()
226 struct sock *sk; in unix_lookup_by_ino() local
230 sk_for_each(sk, &unix_socket_table[i]) in unix_lookup_by_ino()
231 if (ino == sock_i_ino(sk)) { in unix_lookup_by_ino()
232 sock_hold(sk); in unix_lookup_by_ino()
235 return sk; in unix_lookup_by_ino()
248 struct sock *sk; in unix_diag_get_exact() local
251 struct net *net = sock_net(in_skb->sk); in unix_diag_get_exact()
256 sk = unix_lookup_by_ino(req->udiag_ino); in unix_diag_get_exact()
258 if (sk == NULL) in unix_diag_get_exact()
261 err = sock_diag_check_cookie(sk, req->udiag_cookie); in unix_diag_get_exact()
272 err = sk_diag_fill(sk, rep, req, NETLINK_CB(in_skb).portid, in unix_diag_get_exact()
287 if (sk) in unix_diag_get_exact()
288 sock_put(sk); in unix_diag_get_exact()
296 struct net *net = sock_net(skb->sk); in unix_diag_handler_dump()