)]}'
{
  "commit": "41edf278fc2f042f4e22a12ed87d19c5201210e1",
  "tree": "4f49bfe5f401dcc7477fb630f3773a59402b634a",
  "parents": [
    "01b6035190b024240a43ac1d8e9c6f964f5f1c63"
  ],
  "author": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Thu May 01 10:30:00 2014 -0400"
  },
  "committer": {
    "name": "Al Viro",
    "email": "viro@zeniv.linux.org.uk",
    "time": "Thu May 01 10:30:00 2014 -0400"
  },
  "message": "dentry_kill(): don\u0027t try to remove from shrink list\n\nIf the victim in on the shrink list, don\u0027t remove it from there.\nIf shrink_dentry_list() manages to remove it from the list before\nwe are done - fine, we\u0027ll just free it as usual.  If not - mark\nit with new flag (DCACHE_MAY_FREE) and leave it there.\n\nEventually, shrink_dentry_list() will get to it, remove the sucker\nfrom shrink list and call dentry_kill(dentry, 0).  Which is where\nwe\u0027ll deal with freeing.\n\nSince now dentry_kill(dentry, 0) may happen after or during\ndentry_kill(dentry, 1), we need to recognize that (by seeing\nDCACHE_DENTRY_KILLED already set), unlock everything\nand either free the sucker (in case DCACHE_MAY_FREE has been\nset) or leave it for ongoing dentry_kill(dentry, 1) to deal with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e482775343a0d3fe6d518e257286b08bc3b56da8",
      "old_mode": 33188,
      "old_path": "fs/dcache.c",
      "new_id": "58e26bee7ef463fe36f3f7ecbc84b7dfd1a34134",
      "new_mode": 33188,
      "new_path": "fs/dcache.c"
    },
    {
      "type": "modify",
      "old_id": "3b9bfdb83ba6f698cbe1ddf8409f8b6e0dc17427",
      "old_mode": 33188,
      "old_path": "include/linux/dcache.h",
      "new_id": "3c7ec327ebd2eecc2fb63ac4f742ca0d75c56ec8",
      "new_mode": 33188,
      "new_path": "include/linux/dcache.h"
    }
  ]
}
