)]}'
{
  "commit": "0dd1c7bbce8d1d142bb25aefaa50262dfd77cb78",
  "tree": "d45df52098c0a8364a3e614096bb3ee184aeb068",
  "parents": [
    "051ac83adf69eea4f57a97356e4282e395a5fa6d"
  ],
  "author": {
    "name": "Joonsoo Kim",
    "email": "iamjoonsoo.kim@lge.com",
    "time": "Tue Jan 21 15:49:49 2014 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Jan 21 16:19:45 2014 -0800"
  },
  "message": "mm/rmap: extend rmap_walk_xxx() to cope with different cases\n\nThere are a lot of common parts in traversing functions, but there are\nalso a little of uncommon parts in it.  By assigning proper function\npointer on each rmap_walker_control, we can handle these difference\ncorrectly.\n\nFollowing are differences we should handle.\n\n1. difference of lock function in anon mapping case\n2. nonlinear handling in file mapping case\n3. prechecked condition:\n\tchecking memcg in page_referenced(),\n\tchecking VM_SHARE in page_mkclean()\n\tchecking temporary vma in try_to_unmap()\n4. exit condition:\n\tchecking page_mapped() in try_to_unmap()\n\nSo, in this patch, I introduce 4 function pointers to handle above\ndifferences.\n\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Hillf Danton \u003cdhillf@gmail.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": "6a456ce6de20bfb63d16c47ea7a97896d6f7cf11",
      "old_mode": 33188,
      "old_path": "include/linux/rmap.h",
      "new_id": "616aa4d05f0a616a3ad4d93764aedfc23453fb86",
      "new_mode": 33188,
      "new_path": "include/linux/rmap.h"
    },
    {
      "type": "modify",
      "old_id": "c3035fee808042dafe5cf4e022183245c22a80b4",
      "old_mode": 33188,
      "old_path": "mm/ksm.c",
      "new_id": "91b8cb35f7cc75e54b5b2375f46b77a45f8c775f",
      "new_mode": 33188,
      "new_path": "mm/ksm.c"
    },
    {
      "type": "modify",
      "old_id": "f8f10ad5d3594557a61173059302077832812b71",
      "old_mode": 33188,
      "old_path": "mm/rmap.c",
      "new_id": "97bf8f0396f8cc9eed683df14fc26492fa320c2c",
      "new_mode": 33188,
      "new_path": "mm/rmap.c"
    }
  ]
}
