)]}'
{
  "commit": "3ce696d12b26c9c1cfedeb194a02606bef2854a4",
  "tree": "85ea2e7bf2009e4f329a2cd9cec5335b27ad80d6",
  "parents": [
    "4347b837ab999865063649cf801ba4f8d7e8748e"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hughd@google.com",
    "time": "Sat Dec 31 11:44:01 2011 -0800"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Fri Jan 06 14:13:58 2012 -0800"
  },
  "message": "futex: Fix uninterruptible loop due to gate_area\n\ncommit e6780f7243eddb133cc20ec37fa69317c218b709 upstream.\n\nIt was found (by Sasha) that if you use a futex located in the gate\narea we get stuck in an uninterruptible infinite loop, much like the\nZERO_PAGE issue.\n\nWhile looking at this problem, PeterZ realized you\u0027ll get into similar\ntrouble when hitting any install_special_pages() mapping.  And are there\nstill drivers setting up their own special mmaps without page-\u003emapping,\nand without special VM or pte flags to make get_user_pages fail?\n\nIn most cases, if page-\u003emapping is NULL, we do not need to retry at all:\nLinus points out that even /proc/sys/vm/drop_caches poses no problem,\nbecause it ends up using remove_mapping(), which takes care not to\ninterfere when the page reference count is raised.\n\nBut there is still one case which does need a retry: if memory pressure\ncalled shmem_writepage in between get_user_pages_fast dropping page\ntable lock and our acquiring page lock, then the page gets switched from\nfilecache to swapcache (and -\u003emapping set to NULL) whatever the refcount.\nFault it back in to get the page-\u003emapping needed for key-\u003eshared.inode.\n\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8b6da250723d49ee9987290e234f145cbd5ddd24",
      "old_mode": 33188,
      "old_path": "kernel/futex.c",
      "new_id": "6487e4cb9935995b6bd326e9492c791d00bec358",
      "new_mode": 33188,
      "new_path": "kernel/futex.c"
    }
  ]
}
