)]}'
{
  "commit": "deceb6cd17e6dfafe4c4f81b1b4153bc41b2cb70",
  "tree": "2a722f50e8edef8609a49f65bfcb222e499c44cc",
  "parents": [
    "c34d1b4d165c67b966bca4aba026443d7ff161eb"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hugh@veritas.com",
    "time": "Sat Oct 29 18:16:33 2005 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Sat Oct 29 21:40:41 2005 -0700"
  },
  "message": "[PATCH] mm: follow_page with inner ptlock\n\nFinal step in pushing down common core\u0027s page_table_lock.  follow_page no\nlonger wants caller to hold page_table_lock, uses pte_offset_map_lock itself;\nand so no page_table_lock is taken in get_user_pages itself.\n\nBut get_user_pages (and get_futex_key) do then need follow_page to pin the\npage for them: take Daniel\u0027s suggestion of bitflags to follow_page.\n\nNeed one for WRITE, another for TOUCH (it was the accessed flag before:\nvanished along with check_user_page_readable, but surely get_numa_maps is\nwrong to mark every page it finds as accessed), another for GET.\n\nAnd another, ANON to dispose of untouched_anonymous_page: it seems silly for\nthat to descend a second time, let follow_page observe if there was no page\ntable and return ZERO_PAGE if so.  Fix minor bug in that: check VM_LOCKED -\nmake_pages_present ought to make readonly anonymous present.\n\nGive get_numa_maps a cond_resched while we\u0027re there.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.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": "7e5e7ec2e36d66361c78fcfdf011967bd1e2b42f",
      "old_mode": 33188,
      "old_path": "fs/proc/task_mmu.c",
      "new_id": "d2fa42006d8fe96cbc8fc0413d710c1df9a4255e",
      "new_mode": 33188,
      "new_path": "fs/proc/task_mmu.c"
    },
    {
      "type": "modify",
      "old_id": "aa8de20e2e80386fbb1012a3b8b38e0f8b13c20a",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "e8d1424153bbde58d52ed6337c93dc2bee233d4c",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "ca05fe6a70b24a2921901505c99dd7eb105b3df7",
      "old_mode": 33188,
      "old_path": "kernel/futex.c",
      "new_id": "3b4d5ad44cc6eb182a6bece56d2574436762fe56",
      "new_mode": 33188,
      "new_path": "kernel/futex.c"
    },
    {
      "type": "modify",
      "old_id": "51f7c0a220d4281eb864b13c6c78afe67930f6e3",
      "old_mode": 33188,
      "old_path": "mm/memory.c",
      "new_id": "8461e2dd91d75fecafeffccd461b106d11af5a66",
      "new_mode": 33188,
      "new_path": "mm/memory.c"
    },
    {
      "type": "modify",
      "old_id": "dfb124ffb9beb5f59c306c48e81dcd861a51c4b9",
      "old_mode": 33188,
      "old_path": "mm/nommu.c",
      "new_id": "d1e076a487cbe3eff161ca2f2472186977f30e41",
      "new_mode": 33188,
      "new_path": "mm/nommu.c"
    }
  ]
}
