)]}'
{
  "commit": "60eb9e7d1a8aeec2d4371ec445e7fd4425d05017",
  "tree": "3a37a2b2bacd5bd83aca1652085b9b929d32fdc3",
  "parents": [
    "09bb52774e0543390bdba59b67ade093d34e4906"
  ],
  "author": {
    "name": "Jeff Layton",
    "email": "jlayton@redhat.com",
    "time": "Wed Oct 12 10:57:42 2011 -0400"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@suse.de",
    "time": "Fri Nov 11 09:35:54 2011 -0800"
  },
  "message": "nfs: don\u0027t try to migrate pages with active requests\n\ncommit 2da956523526e440ef4f4dd174e26f5ac06fe011 upstream.\n\nnfs_find_and_lock_request will take a reference to the nfs_page and\nwill then put it if the req is already locked. It\u0027s possible though\nthat the reference will be the last one. That put then can kick off\na whole series of reference puts:\n\nnfs_page\n   nfs_open_context\n      dentry\n          inode\n\nIf the inode ends up being deleted, then the VFS will call\ntruncate_inode_pages. That function will try to take the page lock, but\nit was already locked when migrate_page was called. The code\ndeadlocks.\n\nFix this by simply refusing the migration request if PagePrivate is\nalready set, indicating that the page is already associated with an\nactive read or write request.\n\nWe\u0027ve had a customer test a backported version of this patch and\nthe preliminary results seem good.\n\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Harshula Jayasuriya \u003charshula@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6015c7a879b3262362e52a73456c14f80378ecad",
      "old_mode": 33188,
      "old_path": "fs/nfs/write.c",
      "new_id": "f2f80c005c023d4911490555a874bb872a7dad55",
      "new_mode": 33188,
      "new_path": "fs/nfs/write.c"
    }
  ]
}
