)]}'
{
  "commit": "59cd0cbc75367b82f704f63b104117462275060d",
  "tree": "695c4f7af4cf840a7e22e7767e1b5705e0b6d8d1",
  "parents": [
    "7695650a924a6859910c8c19dfa43b4d08224d66"
  ],
  "author": {
    "name": "Darrick J. Wong",
    "email": "djwong@us.ibm.com",
    "time": "Tue May 08 00:25:47 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue May 08 11:15:02 2007 -0700"
  },
  "message": "Fix race between proc_readdir and remove_proc_entry\n\nFix the following race:\n\nproc_readdir\t\t\t\tremove_proc_entry\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\t\t\t\t\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nspin_lock(\u0026proc_subdir_lock);\n[choose PDE to start filldir from]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find PDE]\n\t\t\t\t\t[free PDE, refcount is 0]\n\t\t\t\t\tspin_unlock(\u0026proc_subdir_lock);\n\t\t    /* boom */\nif (filldir(dirent, de-\u003ename, ...\n\n[de_put on error path --adobriyan]\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "22a08ff3475de39b203806a55076cc02e8a13dfc",
      "old_mode": 33188,
      "old_path": "fs/proc/generic.c",
      "new_id": "8a40e15f5ecb90333f7eca84ede39c40e7adb945",
      "new_mode": 33188,
      "new_path": "fs/proc/generic.c"
    }
  ]
}
