)]}'
{
  "commit": "4931c524ee8bbdf890972b14d6fcd9e2c72602d9",
  "tree": "698666d298fdc38c8068b96d056c84f67960e6e4",
  "parents": [
    "1b738f196eacb71a3ae1f1039d7e43e0226b5a70"
  ],
  "author": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Thu Nov 23 17:33:21 2023 -0500"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Thu Nov 23 23:22:03 2023 -0500"
  },
  "message": "retain_dentry(): introduce a trimmed-down lockless variant\n\n\tfast_dput() contains a small piece of code, preceded by scary\ncomments about 5 times longer than it.\tWhat is actually done there is\na trimmed-down subset of retain_dentry() - in some situations we can\ntell that retain_dentry() would have returned true without ever needing\n-\u003ed_lock and that\u0027s what that code checks.  If these checks come true\nfast_dput() can declare that we are done, without bothering with -\u003ed_lock;\notherwise it has to take the lock and do full variant of retain_dentry()\nchecks.\n\n\tTrimmed-down variant of the checks is hard to follow and\nit\u0027s asking for trouble - if we ever decide to change the rules in\nretain_dentry(), we\u0027ll have to remember to update that code.  It turns\nout that an equivalent variant of these checks more obviously parallel\nto retain_dentry() is not just possible, but easy to unify with\nretain_dentry() itself, passing it a new boolean argument (\u0027locked\u0027)\nto distinguish between the full semantics and trimmed down one.\n\n\tNote that in lockless case true is returned only when locked\nvariant would have returned true without ever needing the lock; false\nmeans \"punt to the locking path and recheck there\".\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c795154ffa3ae77c199882a03f50ee1f76b69b7d",
      "old_mode": 33188,
      "old_path": "fs/dcache.c",
      "new_id": "b212a65ed190dac603024dcb10d9400190959723",
      "new_mode": 33188,
      "new_path": "fs/dcache.c"
    }
  ]
}
