)]}'
{
  "commit": "d55d87fdff8252d0e2f7c28c2d443aee17e9d70f",
  "tree": "a4bfb0a47525672c690b63e85bf3f47f4ab014f7",
  "parents": [
    "d5fdd6babcfc2b0e6a8da1acf492a69fb54b4c47"
  ],
  "author": {
    "name": "Herbert Xu",
    "email": "herbert@gondor.apana.org.au",
    "time": "Mon Jun 22 02:25:25 2009 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Jun 23 16:36:25 2009 -0700"
  },
  "message": "net: Move rx skb_orphan call to where needed\n\nIn order to get the tun driver to account packets, we need to be\nable to receive packets with destructors set.  To be on the safe\nside, I added an skb_orphan call for all protocols by default since\nsome of them (IP in particular) cannot handle receiving packets\ndestructors properly.\n\nNow it seems that at least one protocol (CAN) expects to be able\nto pass skb-\u003esk through the rx path without getting clobbered.\n\nSo this patch attempts to fix this properly by moving the skb_orphan\ncall to where it\u0027s actually needed.  In particular, I\u0027ve added it\nto skb_set_owner_[rw] which is what most users of skb-\u003edestructor\ncall.\n\nThis is actually an improvement for tun too since it means that\nwe only give back the amount charged to the socket when the skb\nis passed to another socket that will also be charged accordingly.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nTested-by: Oliver Hartkopp \u003colver@hartkopp.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9f80a766828923a8b41ad0588d91b40fcf12a8be",
      "old_mode": 33188,
      "old_path": "include/net/sctp/sctp.h",
      "new_id": "d16a304cbed4fb74b9de069d5eb41788c7a13d0d",
      "new_mode": 33188,
      "new_path": "include/net/sctp/sctp.h"
    },
    {
      "type": "modify",
      "old_id": "570c7a12b54eef4b1da00cc1c3883609ad5c4225",
      "old_mode": 33188,
      "old_path": "include/net/sock.h",
      "new_id": "7f5c41cc45a919607554ca37bf2b85f40ae031ac",
      "new_mode": 33188,
      "new_path": "include/net/sock.h"
    },
    {
      "type": "modify",
      "old_id": "5f1d2107a1dd70f7628f18d7649d92e2a1bd9d76",
      "old_mode": 33188,
      "old_path": "net/ax25/ax25_in.c",
      "new_id": "de56d3983de098b11d64f8971d85b8ded8187bf2",
      "new_mode": 33188,
      "new_path": "net/ax25/ax25_in.c"
    },
    {
      "type": "modify",
      "old_id": "baf2dc13a34a402aa22af5091bf87d2e1c9f1f16",
      "old_mode": 33188,
      "old_path": "net/core/dev.c",
      "new_id": "60b5728122784a66562da3a4aec075692252382a",
      "new_mode": 33188,
      "new_path": "net/core/dev.c"
    },
    {
      "type": "modify",
      "old_id": "5922febe25c42dc9a602378a600db8d8da674f85",
      "old_mode": 33188,
      "old_path": "net/irda/af_irda.c",
      "new_id": "cb762c8723ea7a90f98b9e34074d98bc3b716742",
      "new_mode": 33188,
      "new_path": "net/irda/af_irda.c"
    },
    {
      "type": "modify",
      "old_id": "67c99d20857fab4e2e078e9c1d5d4a9ee6bbc952",
      "old_mode": 33188,
      "old_path": "net/irda/ircomm/ircomm_lmp.c",
      "new_id": "7ba96618660e349de2253473d6701ab8bbad9613",
      "new_mode": 33188,
      "new_path": "net/irda/ircomm/ircomm_lmp.c"
    }
  ]
}
