)]}'
{
  "commit": "25426b794efdc70dde7fd3134dc56fac3e7d562d",
  "tree": "800ef2d96fbf9cc6e8973d517f714edbda6b4fc2",
  "parents": [
    "0cfd32b736ae0c36b42697584811042726c07cba"
  ],
  "author": {
    "name": "Hiroaki SHIMODA",
    "email": "shimoda.hiroaki@gmail.com",
    "time": "Wed May 30 12:25:19 2012 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu May 31 18:18:16 2012 -0400"
  },
  "message": "bql: Avoid unneeded limit decrement.\n\nWhen below pattern is observed,\n\n                                               TIME\n       dql_queued()         dql_completed()     |\n      a) initial state                          |\n                                                |\n      b) X bytes queued                         V\n\n      c) Y bytes queued\n                           d) X bytes completed\n      e) Z bytes queued\n                           f) Y bytes completed\n\na) dql-\u003elimit has already some value and there is no in-flight packet.\nb) X bytes queued.\nc) Y bytes queued and excess limit.\nd) X bytes completed and dql-\u003eprev_ovlimit is set and also\n   dql-\u003eprev_num_queued is set Y.\ne) Z bytes queued.\nf) Y bytes completed. inprogress and prev_inprogress are true.\n\nAt f), according to the comment, all_prev_completed becomes\ntrue and limit should be increased. But POSDIFF() ignores\n(completed \u003d\u003d dql-\u003eprev_num_queued) case, so limit is decreased.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c87eb76f2fd4f0e778ea74a915a0108e5202f8ce",
      "old_mode": 33188,
      "old_path": "lib/dynamic_queue_limits.c",
      "new_id": "0fafa77f403642820578e0b26b9e6bdedcc953a4",
      "new_mode": 33188,
      "new_path": "lib/dynamic_queue_limits.c"
    }
  ]
}
