)]}'
{
  "commit": "b18dafc86bb879d2f38a1743985d7ceb283c2f4d",
  "tree": "447070f77406615aebadaef03018d634c0da922c",
  "parents": [
    "6658a6991cef75719a21441aa0b7f8d6821534ee"
  ],
  "author": {
    "name": "Michel Lespinasse",
    "email": "walken@google.com",
    "time": "Mon Mar 26 17:32:44 2012 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Mar 28 09:54:34 2012 -0700"
  },
  "message": "vfs: fix d_ancestor() case in d_materialize_unique\n\nIn d_materialise_unique() there are 3 subcases to the \u0027aliased dentry\u0027\ncase; in two subcases the inode i_lock is properly released but this\ndoes not occur in the -ELOOP subcase.\n\nThis seems to have been introduced by commit 1836750115f2 (\"fix loop\nchecks in d_materialise_unique()\").\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: stable@vger.kernel.org # v3.0+\n[ Added a comment, and moved the unlock to where we generate the -ELOOP,\n  which seems to be more natural.\n\n  You probably can\u0027t actually trigger this without a buggy network file\n  server - d_materialize_unique() is for finding aliases on non-local\n  filesystems, and the d_ancestor() case is for a hardlinked directory\n  loop.\n\n  But we should be robust in the case of such buggy servers anyway. ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e9a07b2a09486c019f5967bbafae522ccc9073aa",
      "old_mode": 33188,
      "old_path": "fs/dcache.c",
      "new_id": "b60ddc41d78385d168e67e98adc6020fedc1cfeb",
      "new_mode": 33188,
      "new_path": "fs/dcache.c"
    }
  ]
}
