)]}'
{
  "commit": "17f7a3c8a7ac87d7517603ebfcd2bc66e5d4bbf3",
  "tree": "5b849ae049afd7d60c259b8fc2af83ff7ef97856",
  "parents": [
    "654897a8e890cf443d803f29d8bd55c43a36b83a"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Jul 17 13:03:06 2018 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Jul 17 13:07:17 2018 -0400"
  },
  "message": "9ns: Fix concurrent TF removal bug\n\nIf you had two threads removing a child from a parent at the same time,\nget_locked_and_kreffed_parent() would return a TF that was not the\nparent of the child.  I think the check for child-\u003eparent was from before I\ndeferred clearning -\u003eparent until __tf_free().\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2623a923e58357d289971b571aa2d51f0eb3d482",
      "old_mode": 33188,
      "old_path": "kern/src/ns/tree_file.c",
      "new_id": "be21d2bb1c03b467e1d67bcd5016f9dc32b00d1f",
      "new_mode": 33188,
      "new_path": "kern/src/ns/tree_file.c"
    }
  ]
}
