unix_diag: Add the MEMINFO extension
authorPavel Emelyanov <xemul@parallels.com>
Fri, 30 Dec 2011 09:27:43 +0000 (09:27 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Dec 2011 21:44:24 +0000 (16:44 -0500)
[ Fix indentation of sock_diag*() calls. -DaveM ]

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/unix_diag.h
net/unix/diag.c

index a5ce0f325745f8e7fd5233c54b42ae49bcb8d8f6..93fdb782468a70e74f9d6621751b4452a42b8ecc 100644 (file)
@@ -18,6 +18,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;
@@ -35,6 +36,7 @@ enum {
        UNIX_DIAG_PEER,
        UNIX_DIAG_ICONS,
        UNIX_DIAG_RQLEN,
+       UNIX_DIAG_MEMINFO,
 
        UNIX_DIAG_MAX,
 };
index c5bdbcb1c30b1dde9b8fc2b7caca45dc02effaa2..98945f29da4f41f7739b46bb50c45448b901d8b4 100644 (file)
@@ -127,23 +127,27 @@ static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_r
        sock_diag_save_cookie(sk, rep->udiag_cookie);
 
        if ((req->udiag_show & UDIAG_SHOW_NAME) &&
-                       sk_diag_dump_name(sk, skb))
+           sk_diag_dump_name(sk, skb))
                goto nlmsg_failure;
 
        if ((req->udiag_show & UDIAG_SHOW_VFS) &&
-                       sk_diag_dump_vfs(sk, skb))
+           sk_diag_dump_vfs(sk, skb))
                goto nlmsg_failure;
 
        if ((req->udiag_show & UDIAG_SHOW_PEER) &&
-                       sk_diag_dump_peer(sk, skb))
+           sk_diag_dump_peer(sk, skb))
                goto nlmsg_failure;
 
        if ((req->udiag_show & UDIAG_SHOW_ICONS) &&
-                       sk_diag_dump_icons(sk, skb))
+           sk_diag_dump_icons(sk, skb))
                goto nlmsg_failure;
 
        if ((req->udiag_show & UDIAG_SHOW_RQLEN) &&
-                       sk_diag_show_rqlen(sk, skb))
+           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;
@@ -191,9 +195,9 @@ static int unix_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
                        if (!(req->udiag_states & (1 << sk->sk_state)))
                                goto next;
                        if (sk_diag_dump(sk, skb, req,
-                                               NETLINK_CB(cb->skb).pid,
-                                               cb->nlh->nlmsg_seq,
-                                               NLM_F_MULTI) < 0)
+                                        NETLINK_CB(cb->skb).pid,
+                                        cb->nlh->nlmsg_seq,
+                                        NLM_F_MULTI) < 0)
                                goto done;
 next:
                        num++;