)]}'
{
  "commit": "a2d133b1d465016d0d97560b11f54ba0ace56d3e",
  "tree": "0c41151a6860eb295d7919e22cce1dd5a8b0aea9",
  "parents": [
    "c7cd4c9bf8df87027e739fe66d0a55951f6875d8"
  ],
  "author": {
    "name": "Josh Hunt",
    "email": "johunt@akamai.com",
    "time": "Mon Mar 20 15:22:03 2017 -0400"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Mar 22 11:18:58 2017 -0700"
  },
  "message": "sock: introduce SO_MEMINFO getsockopt\n\nAllows reading of SK_MEMINFO_VARS via socket option. This way an\napplication can get all meminfo related information in single socket\noption call instead of multiple calls.\n\nAdds helper function, sk_get_meminfo(), and uses that for both\ngetsockopt and sock_diag_put_meminfo().\n\nSuggested by Eric Dumazet.\n\nSigned-off-by: Josh Hunt \u003cjohunt@akamai.com\u003e\nReviewed-by: Jason Baron \u003cjbaron@akamai.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "afc901b7a6f6e68c819aec1ab9199806f24fc1c1",
      "old_mode": 33188,
      "old_path": "arch/alpha/include/uapi/asm/socket.h",
      "new_id": "089db42c1b40275e4ebbaf295e82ede323a74da5",
      "new_mode": 33188,
      "new_path": "arch/alpha/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "5a650426f35703e82db1149a4049b8575b21d85f",
      "old_mode": 33188,
      "old_path": "arch/avr32/include/uapi/asm/socket.h",
      "new_id": "6eabcbd2f82a3a410835a2653a81a071b4d395a5",
      "new_mode": 33188,
      "new_path": "arch/avr32/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "81e03530ed39ee7e3b25b7442361f64aa883c179",
      "old_mode": 33188,
      "old_path": "arch/frv/include/uapi/asm/socket.h",
      "new_id": "bd497f8356b98d1656142bef775bec69c64d446a",
      "new_mode": 33188,
      "new_path": "arch/frv/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "57feb0c1f7d707dd51ce20ffba0a418f5b5687ff",
      "old_mode": 33188,
      "old_path": "arch/ia64/include/uapi/asm/socket.h",
      "new_id": "f1bb546861687fd8947738e16dfd7b02d189082b",
      "new_mode": 33188,
      "new_path": "arch/ia64/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "5853f8e92c20cda02450346d839b3f0b466359ee",
      "old_mode": 33188,
      "old_path": "arch/m32r/include/uapi/asm/socket.h",
      "new_id": "459c46076f6f8b8f30b1cccd916e63c29c62bc6f",
      "new_mode": 33188,
      "new_path": "arch/m32r/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "566ecdcb5b4bcb2cd4d5888a1ce787b8fcbd0b97",
      "old_mode": 33188,
      "old_path": "arch/mips/include/uapi/asm/socket.h",
      "new_id": "688c18dd62ef69b382e7b78ed28cbfe2b2d06160",
      "new_mode": 33188,
      "new_path": "arch/mips/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "0e12527c4b0e6de154efaa91fe197eb995a1535c",
      "old_mode": 33188,
      "old_path": "arch/mn10300/include/uapi/asm/socket.h",
      "new_id": "312d2c457a047b69b27f3a2e245f1f17bb5f94ef",
      "new_mode": 33188,
      "new_path": "arch/mn10300/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "7a109b73ddf7e814f9c29ffa1ec9b99977ead5d1",
      "old_mode": 33188,
      "old_path": "arch/parisc/include/uapi/asm/socket.h",
      "new_id": "b98ec38f208331f6c117df77f5b24e94fdcf200e",
      "new_mode": 33188,
      "new_path": "arch/parisc/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "44583a52f882540986928cc48a63971251226a0f",
      "old_mode": 33188,
      "old_path": "arch/powerpc/include/uapi/asm/socket.h",
      "new_id": "099a889240f6706ba41f504b7faf899e2fa53f39",
      "new_mode": 33188,
      "new_path": "arch/powerpc/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "b24a64cbfeb10a91274a59117f2e76ea3c583e00",
      "old_mode": 33188,
      "old_path": "arch/s390/include/uapi/asm/socket.h",
      "new_id": "6199bb34f7fa67ced2068f1c3730612162a80e20",
      "new_mode": 33188,
      "new_path": "arch/s390/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "a25dc32f5d6a163c1b0e7b7ae775f43898ba4d58",
      "old_mode": 33188,
      "old_path": "arch/sparc/include/uapi/asm/socket.h",
      "new_id": "12cd8c2ec42282a0ed4b01dfa00c31126f680ac6",
      "new_mode": 33188,
      "new_path": "arch/sparc/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "9fdbe1fe0473802caaf04782f9a5c05ca813f013",
      "old_mode": 33188,
      "old_path": "arch/xtensa/include/uapi/asm/socket.h",
      "new_id": "d0b85f6c14840f5749f46b8991ed8b3e72f2e76d",
      "new_mode": 33188,
      "new_path": "arch/xtensa/include/uapi/asm/socket.h"
    },
    {
      "type": "modify",
      "old_id": "08142be8938e4a758a13887e7a4cc3a3cc2da56c",
      "old_mode": 33188,
      "old_path": "include/net/sock.h",
      "new_id": "cb241a0e8434ca951b57c8f4aa253d80121c19d7",
      "new_mode": 33188,
      "new_path": "include/net/sock.h"
    },
    {
      "type": "modify",
      "old_id": "2c748ddad5f875711ed66f91eae9bc69b9a41fe0",
      "old_mode": 33188,
      "old_path": "include/uapi/asm-generic/socket.h",
      "new_id": "8313702c1eae5c684251c3105e3170a5a3a6a6d2",
      "new_mode": 33188,
      "new_path": "include/uapi/asm-generic/socket.h"
    },
    {
      "type": "modify",
      "old_id": "a83731c367619d55c8aa883c5583830c18533676",
      "old_mode": 33188,
      "old_path": "net/core/sock.c",
      "new_id": "f8c0373a3a740a88eea8d3eab5441fcc4855f289",
      "new_mode": 33188,
      "new_path": "net/core/sock.c"
    },
    {
      "type": "modify",
      "old_id": "6b10573cc9faa790fe261b452b85f3b774c3ec21",
      "old_mode": 33188,
      "old_path": "net/core/sock_diag.c",
      "new_id": "8d11ee75a100c9e38d1ae5119a5cad000aabd5df",
      "new_mode": 33188,
      "new_path": "net/core/sock_diag.c"
    }
  ]
}
