)]}'
{
  "commit": "d3d4152a5d59af9e13a73efa9e9c24383fbe307f",
  "tree": "552ea5586bb64f8fef93825c72e88b9248d02b79",
  "parents": [
    "779c51795bfb35c2403c924b9de90ca9356bc693"
  ],
  "author": {
    "name": "Jeff Layton",
    "email": "jlayton@redhat.com",
    "time": "Fri Sep 17 17:31:57 2010 -0400"
  },
  "committer": {
    "name": "Trond Myklebust",
    "email": "Trond.Myklebust@netapp.com",
    "time": "Fri Sep 17 17:31:57 2010 -0400"
  },
  "message": "nfs: make sillyrename an async operation\n\nA synchronous rename can be interrupted by a SIGKILL. If that happens\nduring a sillyrename operation, it\u0027s possible for the rename call to\nbe sent to the server, but the task exits before processing the\nreply. If this happens, the sillyrenamed file won\u0027t get cleaned up\nduring nfs_dentry_iput and the server is left with a dangling .nfs* file\nhanging around.\n\nFix this problem by turning sillyrename into an asynchronous operation\nand have the task doing the sillyrename just wait on the reply. If the\ntask is killed before the sillyrename completes, it\u0027ll still proceed\nto completion.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nReviewed-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb41d88e1567ad79a7b4927d0bfe7fb73a620e01",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs3proc.c",
      "new_id": "4e9d941ab5481461e6fb61721a46a9eb1336ee47",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs3proc.c"
    },
    {
      "type": "modify",
      "old_id": "a3c21cc4677b0ba7fb79d921656cc552b79fbe90",
      "old_mode": 33188,
      "old_path": "fs/nfs/nfs4proc.c",
      "new_id": "c46e45e9b33f5aa223f67c55232473e12e302e25",
      "new_mode": 33188,
      "new_path": "fs/nfs/nfs4proc.c"
    },
    {
      "type": "modify",
      "old_id": "0aff10c3bbce02c317af83fd28bcd9642cbb21a8",
      "old_mode": 33188,
      "old_path": "fs/nfs/proc.c",
      "new_id": "e5e84aa2af178e8aac5b160297185986fb6b45fc",
      "new_mode": 33188,
      "new_path": "fs/nfs/proc.c"
    },
    {
      "type": "modify",
      "old_id": "c3ce865294f113987761f64c4eb09b83107f098e",
      "old_mode": 33188,
      "old_path": "fs/nfs/unlink.c",
      "new_id": "698b3e6367ff7ec4c6f6e10f2f66e1d7327defb8",
      "new_mode": 33188,
      "new_path": "fs/nfs/unlink.c"
    },
    {
      "type": "modify",
      "old_id": "9ad132e13d1221825114dbd6974b6d360cd39258",
      "old_mode": 33188,
      "old_path": "include/linux/nfs_xdr.h",
      "new_id": "172df83ac54b529ca98590f778f9f149b0ab6c23",
      "new_mode": 33188,
      "new_path": "include/linux/nfs_xdr.h"
    }
  ]
}
