)]}'
{
  "commit": "cd48dbcf4a910569c3904fb83d99043e5b895320",
  "tree": "d336e68c04374814bae363751eb7ea207df2d93b",
  "parents": [
    "5eb3a8e164dc74497e9ecbf0d56f167f971cc770"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Wed Mar 29 11:14:06 2017 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Wed Mar 29 11:14:06 2017 -0400"
  },
  "message": "qio: Clean up q.*full()\n\nThe old qfull() and qwritable() should be opposites.  qfull() was actually\nwrong in that if we had set no limit, qfull() would always return TRUE\ninstead of always returning FALSE.  I guess in Plan 9 it was on the caller\nto know if there was a limit or not.\n\nqnotfull() was a rendez condition, not a generic function.  It also wasn\u0027t\njust about being full or not, it included being closed.  Renaming the\nfunction makes that more clear.\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "07c58c0baeea1a8f374720b419533853490326d1",
      "old_mode": 33188,
      "old_path": "kern/src/ns/qio.c",
      "new_id": "5f34c32c86b8ed5b275789919f5f5754e409b4bb",
      "new_mode": 33188,
      "new_path": "kern/src/ns/qio.c"
    }
  ]
}
