)]}'
{
  "commit": "826267cf1e6c6899eda1325a19f1b1d15c558b20",
  "tree": "f022fabd26f035888c4fec972ff54163378b8962",
  "parents": [
    "36947a76826111e661a26cb0f668a5be6cc3ddb4"
  ],
  "author": {
    "name": "Hugh Dickins",
    "email": "hughd@google.com",
    "time": "Sat May 28 13:14:09 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sat May 28 16:09:26 2011 -0700"
  },
  "message": "tmpfs: fix race between truncate and writepage\n\nWhile running fsx on tmpfs with a memhog then swapoff, swapoff was hanging\n(interruptibly), repeatedly failing to locate the owner of a 0xff entry in\nthe swap_map.\n\nAlthough shmem_writepage() does abandon when it sees incoming page index\nis beyond eof, there was still a window in which shmem_truncate_range()\ncould come in between writepage\u0027s dropping lock and updating swap_map,\nfind the half-completed swap_map entry, and in trying to free it,\nleave it in a state that swap_shmem_alloc() could not correct.\n\nArguably a bug in __swap_duplicate()\u0027s and swap_entry_free()\u0027s handling\nof the different cases, but easiest to fix by moving swap_shmem_alloc()\nunder cover of the lock.\n\nMore interesting than the bug: it\u0027s been there since 2.6.33, why could\nI not see it with earlier kernels?  The mmotm of two weeks ago seems to\nhave some magic for generating races, this is just one of three I found.\n\nWith yesterday\u0027s git I first saw this in mainline, bisected in search of\nthat magic, but the easy reproducibility evaporated.  Oh well, fix the bug.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1acfb2687bfa144da8fa9b6b2f6c815663d44145",
      "old_mode": 33188,
      "old_path": "mm/shmem.c",
      "new_id": "d221a1cfd7b196175ab9134aac147b22400c13e6",
      "new_mode": 33188,
      "new_path": "mm/shmem.c"
    }
  ]
}
