)]}'
{
  "commit": "9b7f43afd417a6feb80841d30ced4051c362eb5d",
  "tree": "695f97a4d028a3463c8e7edaa4c6d410a941d0bb",
  "parents": [
    "932e9f352b5d685725076f21b237f7c7d804b29c"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hughd@google.com",
    "time": "Wed Apr 18 23:34:46 2012 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Apr 18 23:40:57 2012 -0700"
  },
  "message": "memcg: fix Bad page state after replace_page_cache\n\nMy 9ce70c0240d0 \"memcg: fix deadlock by inverting lrucare nesting\" put a\nnasty little bug into v3.3\u0027s version of mem_cgroup_replace_page_cache(),\nsometimes used for FUSE.  Replacing __mem_cgroup_commit_charge_lrucare()\nby __mem_cgroup_commit_charge(), I used the \"pc\" pointer set up earlier:\nbut it\u0027s for oldpage, and needs now to be for newpage.  Once oldpage was\nfreed, its PageCgroupUsed bit (cleared above but set again here) caused\n\"Bad page state\" messages - and perhaps worse, being missed from newpage.\n(I didn\u0027t find this by using FUSE, but in reusing the function for tmpfs.)\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@vger.kernel.org [v3.3 only]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a7165a60d0a7d4a688270d6cfc14f80b9af08dd5",
      "old_mode": 33188,
      "old_path": "mm/memcontrol.c",
      "new_id": "b868def9bcc1e1f20c05406b1e9b90e0eae5d182",
      "new_mode": 33188,
      "new_path": "mm/memcontrol.c"
    }
  ]
}
