)]}'
{
  "commit": "2be0ffe2b29bd31d3debd0877797892ff2d91f4c",
  "tree": "7f6e56b3fc5a721296851448e3facf821ef543dd",
  "parents": [
    "3560e249abda6bee41a07a7bf0383a6e193e2839"
  ],
  "author": {
    "name": "Timur Tabi",
    "email": "timur@freescale.com",
    "time": "Wed Jul 23 21:28:11 2008 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu Jul 24 10:47:20 2008 -0700"
  },
  "message": "mm: add alloc_pages_exact() and free_pages_exact()\n\nalloc_pages_exact() is similar to alloc_pages(), except that it allocates\nthe minimum number of pages to fulfill the request.  This is useful if you\nwant to allocate a very large buffer that is slightly larger than an even\npower-of-two number of pages.  In that case, alloc_pages() will waste a\nlot of memory.\n\nI have a video driver that wants to allocate a 5MB buffer.  alloc_pages()\nwiill waste 3MB of physically-contiguous memory.\n\nSigned-off-by: Timur Tabi \u003ctimur@freescale.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\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": "f640ed241422de3af2ffa887dbd3f8a961c33ba4",
      "old_mode": 33188,
      "old_path": "include/linux/gfp.h",
      "new_id": "e8003afeffba340aab45281ab5d4a7689f2ce891",
      "new_mode": 33188,
      "new_path": "include/linux/gfp.h"
    },
    {
      "type": "modify",
      "old_id": "eaa86671ebbd73ddda78dc96d293ecf6105671b0",
      "old_mode": 33188,
      "old_path": "mm/page_alloc.c",
      "new_id": "8d528d57b40325d5cf5cf11eada9d7dd59b3ea51",
      "new_mode": 33188,
      "new_path": "mm/page_alloc.c"
    }
  ]
}
