From patchwork Wed Dec 28 13:40:24 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Emelyanov X-Patchwork-Id: 133436 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3A66EB6FB7 for ; Thu, 29 Dec 2011 00:40:36 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753933Ab1L1Nkb (ORCPT ); Wed, 28 Dec 2011 08:40:31 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:18041 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753844Ab1L1Nk3 (ORCPT ); Wed, 28 Dec 2011 08:40:29 -0500 Received: from [10.30.19.237] ([10.30.19.237]) (authenticated bits=0) by relay.sw.ru (8.13.4/8.13.4) with ESMTP id pBSDeODL011096 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 28 Dec 2011 16:40:25 +0300 (MSK) Message-ID: <4EFB1C48.7060407@parallels.com> Date: Wed, 28 Dec 2011 17:40:24 +0400 From: Pavel Emelyanov User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Thunderbird/3.1.10 MIME-Version: 1.0 To: David Miller , Linux Netdev List Subject: [PATCH 5/5] unix_diag: Report ack backlog info for listen sockets Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org I propose to reuse the MEMINFO bit and message for this, since it's a) also 2 values b) symmetrical to how inet diag reports the length Is it OK, or is it better to introduce separate bit and message? Signed-off-by: Pavel Emelyanov --- net/unix/diag.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/net/unix/diag.c b/net/unix/diag.c index dbae8a4..ebec5fc 100644 --- a/net/unix/diag.c +++ b/net/unix/diag.c @@ -113,8 +113,14 @@ static int sk_diag_show_meminfo(struct sock *sk, struct sk_buff *nlskb) struct unix_diag_meminfo *mi; mi = UNIX_DIAG_PUT(nlskb, UNIX_DIAG_MEMINFO, sizeof(*mi)); - mi->udiag_len = sk_wmem_alloc_get(sk); - mi->udiag_limit = sk->sk_sndbuf; + + if (sk->sk_state == TCP_LISTEN) { + mi->udiag_len = sk->sk_receive_queue.qlen; + mi->udiag_limit = sk->sk_max_ack_backlog; + } else { + mi->udiag_len = sk_wmem_alloc_get(sk); + mi->udiag_limit = sk->sk_sndbuf; + } return 0;