From patchwork Thu Dec 29 14:13:39 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Emelyanov X-Patchwork-Id: 133548 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 60FE4B6FBC for ; Fri, 30 Dec 2011 01:13:51 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751603Ab1L2ONq (ORCPT ); Thu, 29 Dec 2011 09:13:46 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:30407 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750890Ab1L2ONo (ORCPT ); Thu, 29 Dec 2011 09:13:44 -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 pBTEDd0l002718 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 29 Dec 2011 17:13:40 +0300 (MSK) Message-ID: <4EFC7593.5020903@parallels.com> Date: Thu, 29 Dec 2011 18:13:39 +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 3/5] unix_diag: Add the MEMINFO extension Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Pavel Emelyanov --- include/linux/unix_diag.h | 2 ++ net/unix/diag.c | 4 ++++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/include/linux/unix_diag.h b/include/linux/unix_diag.h index 3f7afb0..5255f51 100644 --- a/include/linux/unix_diag.h +++ b/include/linux/unix_diag.h @@ -16,6 +16,7 @@ struct unix_diag_req { #define UDIAG_SHOW_PEER 0x00000004 /* show peer socket info */ #define UDIAG_SHOW_ICONS 0x00000008 /* show pending connections */ #define UDIAG_SHOW_RQLEN 0x00000010 /* show skb receive queue len */ +#define UDIAG_SHOW_MEMINFO 0x00000020 /* show memory info of a socket */ struct unix_diag_msg { __u8 udiag_family; @@ -33,6 +34,7 @@ enum { UNIX_DIAG_PEER, UNIX_DIAG_ICONS, UNIX_DIAG_RQLEN, + UNIX_DIAG_MEMINFO, UNIX_DIAG_MAX, }; diff --git a/net/unix/diag.c b/net/unix/diag.c index c5bdbcb..9517bdd 100644 --- a/net/unix/diag.c +++ b/net/unix/diag.c @@ -146,6 +146,10 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_r sk_diag_show_rqlen(sk, skb)) goto nlmsg_failure; + if ((req->udiag_show & UDIAG_SHOW_MEMINFO) && + sock_diag_put_meminfo(sk, skb, UNIX_DIAG_MEMINFO)) + goto nlmsg_failure; + nlh->nlmsg_len = skb_tail_pointer(skb) - b; return skb->len;