)]}'
{
  "commit": "7a238fcba0629b6f2edbcd37458bae56fcf36be5",
  "tree": "ad556f0ec00637df5b4c4a2063c6b3325666d2f1",
  "parents": [
    "c0d4d573feed199b16094c072e7cb07afb01c598"
  ],
  "author": {
    "name": "Serge E. Hallyn",
    "email": "serue@us.ibm.com",
    "time": "Mon Jan 29 13:19:40 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue Jan 30 08:26:44 2007 -0800"
  },
  "message": "[PATCH] namespaces: fix exit race by splitting exit\n\nFix exit race by splitting the nsproxy putting into two pieces.  First\npiece reduces the nsproxy refcount.  If we dropped the last reference, then\nit puts the mnt_ns, and returns the nsproxy as a hint to the caller.  Else\nit returns NULL.  The second piece of exiting task namespaces sets\ntsk-\u003ensproxy to NULL, and drops the references to other namespaces and\nfrees the nsproxy only if an nsproxy was passed in.\n\nA little awkward and should probably be reworked, but hopefully it fixes\nthe NFS oops.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Daniel Hokka Zakrisson \u003cdaniel@hozac.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b9f0dc30d6114a1f5177a7fde829d2199137172",
      "old_mode": 33188,
      "old_path": "include/linux/nsproxy.h",
      "new_id": "678e1d38effba0866464ec560639fe07aaa929fa",
      "new_mode": 33188,
      "new_path": "include/linux/nsproxy.h"
    },
    {
      "type": "modify",
      "old_id": "35401720635b4df01afe542c655ba350ac13d6a2",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "a5bf5329ff97673c3d1843f10fcb4ad2004b114c",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "fc723e595cd5ba2c95499ba058636005dd9946e3",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "4cf868458f06bb2fed06df3ff9f5624ca4d92a20",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "f5b9ee6f6bbb02733cef1e64fabe4dc521efc767",
      "old_mode": 33188,
      "old_path": "kernel/nsproxy.c",
      "new_id": "7b05bce75cde28ff75b423157c165a8150858329",
      "new_mode": 33188,
      "new_path": "kernel/nsproxy.c"
    }
  ]
}
