)]}'
{
  "commit": "686a7e32ca7fdd819eb9606abd3db52b77d1479f",
  "tree": "409af64ba9a4685781e5cd6ed455b1927a13348d",
  "parents": [
    "e7a46b4d0839c2a3aa2e0ae0b145f293f6738498"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Thu May 26 17:27:11 2011 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Fri May 27 13:39:11 2011 -0400"
  },
  "message": "inetpeer: fix race in unused_list manipulations\n\nSeveral crashes in cleanup_once() were reported in recent kernels.\n\nCommit d6cc1d642de9 (inetpeer: various changes) added a race in\nunlink_from_unused().\n\nOne way to avoid taking unused_peers.lock before doing the list_empty()\ntest is to catch 0-\u003e1 refcnt transitions, using full barrier atomic\noperations variants (atomic_cmpxchg() and atomic_inc_return()) instead\nof previous atomic_inc() and atomic_add_unless() variants.\n\nWe then call unlink_from_unused() only for the owner of the 0-\u003e1\ntransition.\n\nAdd a new atomic_add_unless_return() static helper\n\nWith help from Arun Sharma.\n\nRefs: https://bugzilla.kernel.org/show_bug.cgi?id\u003d32772\n\nReported-by: Arun Sharma \u003casharma@fb.com\u003e\nReported-by: Maximilian Engelhardt \u003cmaxi@daemonizer.de\u003e\nReported-by: Yann Dupont \u003cYann.Dupont@univ-nantes.fr\u003e\nReported-by: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9df4e635fb5fe5d4a0c92526ad68b845094aa39d",
      "old_mode": 33188,
      "old_path": "net/ipv4/inetpeer.c",
      "new_id": "ce616d92cc544dd0a8e3ffb0974aff825a5939e9",
      "new_mode": 33188,
      "new_path": "net/ipv4/inetpeer.c"
    }
  ]
}
