)]}'
{
  "commit": "c83ce989cb5ff86575821992ea82c4df5c388ebc",
  "tree": "29741017daffb074fbe09c3aec6d937f2f0c140d",
  "parents": [
    "c826cb7dfce80512c26c984350077a25046bd215"
  ],
  "author": {
    "name": "Trond Myklebust",
    "email": "Trond.Myklebust@netapp.com",
    "time": "Tue Mar 15 13:36:43 2011 -0400"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Mar 15 15:46:11 2011 -0700"
  },
  "message": "VFS: Fix the nfs sillyrename regression in kernel 2.6.38\n\nThe new vfs locking scheme introduced in 2.6.38 breaks NFS sillyrename\nbecause the latter relies on being able to determine the parent\ndirectory of the dentry in the -\u003eiput() callback in order to send the\nappropriate unlink rpc call.\n\nLooking at the code that cares about races with dput(), there doesn\u0027t\nseem to be anything that specifically uses d_parent as a test for\nwhether or not there is a race:\n  - __d_lookup_rcu(), __d_lookup() all test for d_hashed() after d_parent\n  - shrink_dcache_for_umount() is safe since nothing else can rearrange\n    the dentries in that super block.\n  - have_submount(), select_parent() and d_genocide() can test for a\n    deletion if we set the DCACHE_DISCONNECTED flag when the dentry\n    is removed from the parent\u0027s d_subdirs list.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org (2.6.38, needs commit c826cb7dfce8 \"dcache.c:\n\tcreate helper function for duplicated functionality\" )\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "361882a14ccbce8885ca2759c6d9d2db2b419804",
      "old_mode": 33188,
      "old_path": "fs/dcache.c",
      "new_id": "a39fe47c466f794cb4f794ccd2863f2e165fc03e",
      "new_mode": 33188,
      "new_path": "fs/dcache.c"
    }
  ]
}
