aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@parallels.com>2011-12-30 00:53:32 +0000
committerDavid S. Miller <davem@davemloft.net>2011-12-30 16:42:19 -0500
commitc0636faa539ec4205ec50e80844a5b0454b4bbaa (patch)
tree16af09a4c857a1ec45bf573e39c6b46fedbd103f
parent5d2e5f274f9e9a06fb934dd45260e2616a9992e6 (diff)
inet_diag: Add the SKMEMINFO extension
Signed-off-by: Pavel Emelyanov <xemul@parallels.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/inet_diag.h3
-rw-r--r--net/ipv4/inet_diag.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/inet_diag.h b/include/linux/inet_diag.h
index afa5d5c7416..34e8d52c192 100644
--- a/include/linux/inet_diag.h
+++ b/include/linux/inet_diag.h
@@ -108,9 +108,10 @@ enum {
INET_DIAG_CONG,
INET_DIAG_TOS,
INET_DIAG_TCLASS,
+ INET_DIAG_SKMEMINFO,
};
-#define INET_DIAG_MAX INET_DIAG_TCLASS
+#define INET_DIAG_MAX INET_DIAG_SKMEMINFO
/* INET_DIAG_MEM */
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index fb2e47ff59f..2240a8e8c44 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -136,6 +136,10 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
minfo->idiag_tmem = sk_wmem_alloc_get(sk);
}
+ if (ext & (1 << (INET_DIAG_SKMEMINFO - 1)))
+ if (sock_diag_put_meminfo(sk, skb, INET_DIAG_SKMEMINFO))
+ goto rtattr_failure;
+
if (icsk == NULL) {
r->idiag_rqueue = r->idiag_wqueue = 0;
goto out;