)]}'
{
  "commit": "578c8183c116e623d53b05d4c79762d053c7090f",
  "tree": "783cb8471e5efdb486fc7dd4f5de53038a96f8a7",
  "parents": [
    "59cd0cbc75367b82f704f63b104117462275060d"
  ],
  "author": {
    "name": "Alexey Dobriyan",
    "email": "adobriyan@sw.ru",
    "time": "Tue May 08 00:25:49 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Tue May 08 11:15:02 2007 -0700"
  },
  "message": "proc: remove pathetic -\u003edeleted WARN_ON\n\nWARN_ON(de \u0026\u0026 de-\u003edeleted); is sooo unreliable. Why?\n\nproc_lookup\t\t\t\tremove_proc_entry\n\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\nlock_kernel();\nspin_lock(\u0026proc_subdir_lock);\n[find proc entry]\nspin_unlock(\u0026proc_subdir_lock);\n\t\t\t\t\tspin_lock(\u0026proc_subdir_lock);\n\t\t\t\t\t[find proc entry]\n\nproc_get_inode\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nWARN_ON(de \u0026\u0026 de-\u003edeleted);\t\t\t...\n\n\t\t\t\t\tif (!atomic_read(\u0026de-\u003ecount))\n\t\t\t\t\t\tfree_proc_entry(de);\n\t\t\t\t\telse\n\t\t\t\t\t\tde-\u003edeleted \u003d 1;\n\nSo, if you have some strange oops [1], and doesn\u0027t see this WARN_ON it means\nnothing.\n\n[1] try_module_get() of module which doesn\u0027t exist, two lines below\n    should suffice, or not?\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@sw.ru\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": "d1de6378930c87aeb10fb645b75e8db37ce0ff98",
      "old_mode": 33188,
      "old_path": "fs/proc/inode.c",
      "new_id": "b8171907c83b64e30ce98bf6553c7feff60768e1",
      "new_mode": 33188,
      "new_path": "fs/proc/inode.c"
    }
  ]
}
