)]}'
{
  "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
  "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
  "parents": [
    "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
  ],
  "author": {
    "name": "Michel Lespinasse",
    "email": "walken@google.com",
    "time": "Mon Oct 08 16:31:25 2012 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Oct 09 16:22:39 2012 +0900"
  },
  "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\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": "7599e2625c7d021a9db22afbd5b4904e6b701b1d",
      "old_mode": 33188,
      "old_path": "arch/arm/mm/fault-armv.c",
      "new_id": "2a5907b5c8d2272bcc366d01f6da6e5312d7d718",
      "new_mode": 33188,
      "new_path": "arch/arm/mm/fault-armv.c"
    },
    {
      "type": "modify",
      "old_id": "40ca11ed6e5fbae9c54914db0123bf136e788481",
      "old_mode": 33188,
      "old_path": "arch/arm/mm/flush.c",
      "new_id": "1c8f7f56417598303cac08ca3baa8353361366ff",
      "new_mode": 33188,
      "new_path": "arch/arm/mm/flush.c"
    },
    {
      "type": "modify",
      "old_id": "9d181890a7e3cbe9b28238be7bee8e7c1c2e3e36",
      "old_mode": 33188,
      "old_path": "arch/parisc/kernel/cache.c",
      "new_id": "48e16dc20102ddb4b754850af53b4968ff991162",
      "new_mode": 33188,
      "new_path": "arch/parisc/kernel/cache.c"
    },
    {
      "type": "modify",
      "old_id": "b91e48512425f6f210e9406cbfc666395bad6ad1",
      "old_mode": 33188,
      "old_path": "arch/x86/mm/hugetlbpage.c",
      "new_id": "937bff5cdaa79a54f5a15174f1717259b79c5291",
      "new_mode": 33188,
      "new_path": "arch/x86/mm/hugetlbpage.c"
    },
    {
      "type": "modify",
      "old_id": "0a0ab8e21b19ebbf4a204b4bfd68025fb95f16cc",
      "old_mode": 33188,
      "old_path": "fs/hugetlbfs/inode.c",
      "new_id": "c5bc355d8243e36ba8ae322756f6a71277aa778b",
      "new_mode": 33188,
      "new_path": "fs/hugetlbfs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "ac8d904b3f1624bfa945ba088d2909e740e16a6c",
      "old_mode": 33188,
      "old_path": "fs/inode.c",
      "new_id": "b03c7195724685e74cba0275adaa718755eb5455",
      "new_mode": 33188,
      "new_path": "fs/inode.c"
    },
    {
      "type": "modify",
      "old_id": "5a8a273d5b2f511cd90968ac2d9235dcbf8a8448",
      "old_mode": 33188,
      "old_path": "include/linux/fs.h",
      "new_id": "c617ed024df87b952e968da04f988119b0db2d13",
      "new_mode": 33188,
      "new_path": "include/linux/fs.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c65deda31413ec34728c9f4e9eecd0ac488a4a0b",
      "new_mode": 33188,
      "new_path": "include/linux/interval_tree_tmpl.h"
    },
    {
      "type": "modify",
      "old_id": "5ddb11b2b4bb8d3611b0e4655a6369f4a8677923",
      "old_mode": 33188,
      "old_path": "include/linux/mm.h",
      "new_id": "0f671ef09ebad6e99e651e4f78cb54dc4387a81f",
      "new_mode": 33188,
      "new_path": "include/linux/mm.h"
    },
    {
      "type": "modify",
      "old_id": "a57a43f5ca7c4982e29c8fe7012cee9828505b7a",
      "old_mode": 33188,
      "old_path": "include/linux/mm_types.h",
      "new_id": "31f8a3af7d942545562afd1fcacf11f52a4f82a0",
      "new_mode": 33188,
      "new_path": "include/linux/mm_types.h"
    },
    {
      "type": "modify",
      "old_id": "912ef48d28ab485d2948b46d6862fbed91be84b5",
      "old_mode": 33188,
      "old_path": "kernel/events/uprobes.c",
      "new_id": "1d9c0a9859600e41a7105b57aced137d6d893ccb",
      "new_mode": 33188,
      "new_path": "kernel/events/uprobes.c"
    },
    {
      "type": "modify",
      "old_id": "972762e01024bb145ac26557b1f44a741fe35f21",
      "old_mode": 33188,
      "old_path": "kernel/fork.c",
      "new_id": "90dace52715e6f0ac2616c257cf34008aa3b20fd",
      "new_mode": 33188,
      "new_path": "kernel/fork.c"
    },
    {
      "type": "modify",
      "old_id": "6fd540b1e4990153981225813044a7c53deb81d7",
      "old_mode": 33188,
      "old_path": "lib/interval_tree.c",
      "new_id": "77a793e0644b901b4db5de9bb992141eda7df7d3",
      "new_mode": 33188,
      "new_path": "lib/interval_tree.c"
    },
    {
      "type": "modify",
      "old_id": "4e0d2edff2b4eacdd9bdfb34ace209ef5d037595",
      "old_mode": 33188,
      "old_path": "lib/prio_tree.c",
      "new_id": "bba37148c15e1b579c45b14ae94a5aefafe226e2",
      "new_mode": 33188,
      "new_path": "lib/prio_tree.c"
    },
    {
      "type": "modify",
      "old_id": "92753e2d82dac41fe9a8c2f4633189ad723bbd07",
      "old_mode": 33188,
      "old_path": "mm/Makefile",
      "new_id": "6b025f80af34c50eb10a424a085a7043156d4370",
      "new_mode": 33188,
      "new_path": "mm/Makefile"
    },
    {
      "type": "modify",
      "old_id": "91750227a191c2dc82cb6f7ca21840fd8fbb74da",
      "old_mode": 33188,
      "old_path": "mm/filemap_xip.c",
      "new_id": "a52daee11d3feed2bf692a86f9df059f41effe98",
      "new_mode": 33188,
      "new_path": "mm/filemap_xip.c"
    },
    {
      "type": "modify",
      "old_id": "3d731a4987885fe8f36b96274c2d21b95be7e135",
      "old_mode": 33188,
      "old_path": "mm/fremap.c",
      "new_id": "3899a86851ceb6bf021e51c014fef16e0893a7f0",
      "new_mode": 33188,
      "new_path": "mm/fremap.c"
    },
    {
      "type": "modify",
      "old_id": "f1bb534254f6977a7685893ee7046774522b93ca",
      "old_mode": 33188,
      "old_path": "mm/hugetlb.c",
      "new_id": "c9b40e3a993668f42837bc6ed553685004806d53",
      "new_mode": 33188,
      "new_path": "mm/hugetlb.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7dc565660e562b8e73acdbbdef7df8a43d0b94d8",
      "new_mode": 33188,
      "new_path": "mm/interval_tree.c"
    },
    {
      "type": "modify",
      "old_id": "a6e2141a6610bfd4fab325e343149a25fadc8835",
      "old_mode": 33188,
      "old_path": "mm/memory-failure.c",
      "new_id": "c38a6257d0824b722b222eb8affc366f1495597a",
      "new_mode": 33188,
      "new_path": "mm/memory-failure.c"
    },
    {
      "type": "modify",
      "old_id": "e09c048131869ac3c956aa8d6cfbec9677cdc642",
      "old_mode": 33188,
      "old_path": "mm/memory.c",
      "new_id": "d205e4381a34a8d1aaa2c795f52f3be02c3dbe8a",
      "new_mode": 33188,
      "new_path": "mm/memory.c"
    },
    {
      "type": "modify",
      "old_id": "e3c365ff1b6aed16ab05d549586c68f39776cc97",
      "old_mode": 33188,
      "old_path": "mm/mmap.c",
      "new_id": "5ac533f88e99ccf1ef2b13a146b8c076e7949402",
      "new_mode": 33188,
      "new_path": "mm/mmap.c"
    },
    {
      "type": "modify",
      "old_id": "12e84e69dd0642619878dc246b28e047e8ea8476",
      "old_mode": 33188,
      "old_path": "mm/nommu.c",
      "new_id": "45131b41bcdbaf4fdfd6c411a6d0aef526ed0883",
      "new_mode": 33188,
      "new_path": "mm/nommu.c"
    },
    {
      "type": "delete",
      "old_id": "799dcfd7cd8c5499b78bdc1b0b6f976ce79465bc",
      "old_mode": 33188,
      "old_path": "mm/prio_tree.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "0f3b7cda2a24c5705ea4ad6e7ef127f53fdf3633",
      "old_mode": 33188,
      "old_path": "mm/rmap.c",
      "new_id": "7b5b51d25fc506e215f04ceddb558740bf072193",
      "new_mode": 33188,
      "new_path": "mm/rmap.c"
    }
  ]
}
