diff -NurpP --minimal linux-2.6.11-rc3-vs1.9.4-rc5.o/net/ipv4/tcp_diag.c linux-2.6.11-rc3-vs1.9.4-rc5/net/ipv4/tcp_diag.c --- linux-2.6.11-rc3-vs1.9.4-rc5.o/net/ipv4/tcp_diag.c 2005-02-03 15:20:37 +0100 +++ linux-2.6.11-rc3-vs1.9.4-rc5/net/ipv4/tcp_diag.c 2005-02-07 01:50:46 +0100 @@ -611,6 +611,9 @@ static int tcpdiag_dump(struct sk_buff * sk_for_each(sk, node, &tcp_listening_hash[i]) { struct inet_sock *inet = inet_sk(sk); + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) + continue; + if (num < s_num) { num++; continue; @@ -672,6 +675,8 @@ skip_listen_ht: sk_for_each(sk, node, &head->chain) { struct inet_sock *inet = inet_sk(sk); + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) + continue; if (num < s_num) goto next_normal; if (!(r->tcpdiag_states & (1 << sk->sk_state))) @@ -694,6 +699,8 @@ next_normal: &tcp_ehash[i + tcp_ehash_size].chain) { struct inet_sock *inet = inet_sk(sk); + if (!vx_check(sk->sk_xid, VX_IDENT|VX_WATCH)) + continue; if (num < s_num) goto next_dying; if (r->id.tcpdiag_sport != inet->sport &&