)]}'
{
  "commit": "48e6484d49020dba3578ad117b461e8a391e8f0f",
  "tree": "7824ca84bfe71c3fe2c09a1fedc31106fec4f500",
  "parents": [
    "662795deb854b31501e0ffb42b7f0cce802c134a"
  ],
  "author": {
    "name": "Eric W. Biederman",
    "email": "ebiederm@xmission.com",
    "time": "Mon Jun 26 00:25:48 2006 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Jun 26 09:58:24 2006 -0700"
  },
  "message": "[PATCH] proc: Rewrite the proc dentry flush on exit optimization\n\nTo keep the dcache from filling up with dead /proc entries we flush them on\nprocess exit.  However over the years that code has gotten hairy with a\ndentry_pointer and a lock in task_struct and misdocumented as a correctness\nfeature.\n\nI have rewritten this code to look and see if we have a corresponding entry in\nthe dcache and if so flush it on process exit.  This removes the extra fields\nin the task_struct and allows me to trivially handle the case of a\n/proc/\u003ctgid\u003e/task/\u003cpid\u003e entry as well as the current /proc/\u003cpid\u003e entries.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b88bf646143c983a36309c3d5f425dcff7ec841",
      "old_mode": 33188,
      "old_path": "fs/exec.c",
      "new_id": "8c5196087f319c3d3e809c08291856b1f38cfe1c",
      "new_mode": 33188,
      "new_path": "fs/exec.c"
    },
    {
      "type": "modify",
      "old_id": "c8636841bbcf33cc68bf4c56d3771c4e99e0c7b1",
      "old_mode": 33188,
      "old_path": "fs/proc/base.c",
      "new_id": "f435932e6432cc2aea796b7ae7ca5780d9c52b4a",
      "new_mode": 33188,
      "new_path": "fs/proc/base.c"
    },
    {
      "type": "modify",
      "old_id": "41ecbb847f32f301a7ecd30b6438fea702886a33",
      "old_mode": 33188,
      "old_path": "include/linux/init_task.h",
      "new_id": "e127ef7e8da834dd3300ab875349c530b8a5e60d",
      "new_mode": 33188,
      "new_path": "include/linux/init_task.h"
    },
    {
      "type": "modify",
      "old_id": "9dd84884abb144b9e84cd509ff34a877abba56ef",
      "old_mode": 33188,
      "old_path": "include/linux/proc_fs.h",
      "new_id": "d4d2081dbaf7852946d74247d924ee90392ef8ad",
      "new_mode": 33188,
      "new_path": "include/linux/proc_fs.h"
    },
    {
      "type": "modify",
      "old_id": "8d11d9310db0a0fb14e042f94c1b3335a20a4c63",
      "old_mode": 33188,
      "old_path": "include/linux/sched.h",
      "new_id": "122a25c1b997e46641b636db8a740ca9af9e3788",
      "new_mode": 33188,
      "new_path": "include/linux/sched.h"
    },
    {
      "type": "modify",
      "old_id": "e76bd02e930ed6417c8df5f6b5f31d0a12da9abc",
      "old_mode": 33188,
      "old_path": "kernel/exit.c",
      "new_id": "304ef637be6c700e7b5d73172222a0e05e5f96d8",
      "new_mode": 33188,
      "new_path": "kernel/exit.c"
    },
    {
      "type": "modify",
      "old_id": "dfd10cb370c388119685a5983511b5ad60c74191",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "79e91046f36efb1def037bb3c2be348a1fbebb39",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    }
  ]
}
