)]}'
{
  "commit": "11a100f844f6096787ab20e19f17d72abc957a8f",
  "tree": "9dd9f8578727783dc1d321a822402ee6ca83cd10",
  "parents": [
    "9bb8582efb555521c7eec595ebd34e835ddc34b8"
  ],
  "author": {
    "name": "Patrick McHardy",
    "email": "kaber@trash.net",
    "time": "Tue Jul 08 15:36:57 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Jul 08 15:36:57 2008 -0700"
  },
  "message": "vlan: avoid header copying and linearisation where possible\n\n- vlan_dev_reorder_header() is only called on the receive path after\n  calling skb_share_check(). This means we can use skb_cow() since\n  all we need is a writable header.\n\n- vlan_dev_hard_header() includes a work-around for some apparently\n  broken out of tree MPLS code. The hard_header functions can expect\n  to always have a headroom of at least there own hard_header_len\n  available, so the reallocation check is unnecessary.\n\n- __vlan_put_tag() can use skb_cow_head() to avoid the skb_unshare()\n  copy when the header is writable.\n\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d36515dae62fe8163763b867c0e661be7252b20e",
      "old_mode": 33188,
      "old_path": "include/linux/if_vlan.h",
      "new_id": "93f5d9b0e9f9e807f3e11996f953342d444f3096",
      "new_mode": 33188,
      "new_path": "include/linux/if_vlan.h"
    },
    {
      "type": "modify",
      "old_id": "2ccac6bea57ee9973e206100fa7b37f661dd2aef",
      "old_mode": 33188,
      "old_path": "net/8021q/vlan_dev.c",
      "new_id": "b6e52c025fd8f452845542b3d0ca247737bded54",
      "new_mode": 33188,
      "new_path": "net/8021q/vlan_dev.c"
    }
  ]
}
