)]}'
{
  "commit": "1fd05ba5a2f2aa8e7b9b52ef55df850e2e7d54c9",
  "tree": "3403194403ab25f1f7a360a002adf63be2b4e9b0",
  "parents": [
    "99d24edeb6abc6ca3a0d0fbdb83c664c04403c8c"
  ],
  "author": {
    "name": "Miklos Szeredi",
    "email": "mszeredi@suse.cz",
    "time": "Wed Jul 11 14:22:39 2007 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Jul 11 14:22:39 2007 -0700"
  },
  "message": "[AF_UNIX]: Rewrite garbage collector, fixes race.\n\nThrow out the old mark \u0026 sweep garbage collector and put in a\nrefcounting cycle detecting one.\n\nThe old one had a race with recvmsg, that resulted in false positives\nand hence data loss.  The old algorithm operated on all unix sockets\nin the system, so any additional locking would have meant performance\nproblems for all users of these.\n\nThe new algorithm instead only operates on \"in flight\" sockets, which\nare very rare, and the additional locking for these doesn\u0027t negatively\nimpact the vast majority of users.\n\nIn fact it\u0027s probable, that there weren\u0027t *any* heavy senders of\nsockets over sockets, otherwise the above race would have been\ndiscovered long ago.\n\nThe patch works OK with the app that exposed the race with the old\ncode.  The garbage collection has also been verified to work in a few\nsimple cases.\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "65f49fd7deff1620c3f6fdc9102c717f8f2dedae",
      "old_mode": 33188,
      "old_path": "include/net/af_unix.h",
      "new_id": "6de1e9e35c73e6dfe97cb44538878bf639d8e4f7",
      "new_mode": 33188,
      "new_path": "include/net/af_unix.h"
    },
    {
      "type": "modify",
      "old_id": "3654b647ac79dd0de7c88f8d88aae657269f68b6",
      "old_mode": 33188,
      "old_path": "net/unix/af_unix.c",
      "new_id": "65ebccc0a698f31fff7de9c3fa7eebd3689e5969",
      "new_mode": 33188,
      "new_path": "net/unix/af_unix.c"
    },
    {
      "type": "modify",
      "old_id": "f20b7ea7c5553264b5ecd18fc3e5196a8f012500",
      "old_mode": 33188,
      "old_path": "net/unix/garbage.c",
      "new_id": "406b6433e467b4b4cbe697d24ec03f4cfa33e22e",
      "new_mode": 33188,
      "new_path": "net/unix/garbage.c"
    }
  ]
}
