)]}'
{
  "commit": "3a366e614d0837d9fc23f78cdb1a1186ebc3387f",
  "tree": "5be6ec716687234ac1e6202db62c84ee1d2246be",
  "parents": [
    "ac9a19745196388ae5d828c0be7a1d6e472101f3"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Fri Jan 11 13:06:33 2013 -0800"
  },
  "committer": {
    "name": "Jens Axboe",
    "email": "axboe@kernel.dk",
    "time": "Mon Jan 14 15:00:36 2013 +0100"
  },
  "message": "block: add missing block_bio_complete() tracepoint\n\nbio completion didn\u0027t kick block_bio_complete TP.  Only dm was\nexplicitly triggering the TP on IO completion.  This makes\nblock_bio_complete TP useless for tracers which want to know about\nbios, and all other bio based drivers skip generating blktrace\ncompletion events.\n\nThis patch makes all bio completions via bio_endio() generate\nblock_bio_complete TP.\n\n* Explicit trace_block_bio_complete() invocation removed from dm and\n  the trace point is unexported.\n\n* @rq dropped from trace_block_bio_complete().  bios may fly around\n  w/o queue associated.  Verifying and accessing the assocaited queue\n  belongs to TP probes.\n\n* blktrace now gets both request and bio completions.  Make it ignore\n  bio completions if request completion path is happening.\n\nThis makes all bio based drivers generate blktrace completion events\nproperly and makes the block_bio_complete TP actually useful.\n\nv2: With this change, block_bio_complete TP could be invoked on sg\n    commands which have bio\u0027s with %NULL bi_bdev.  Update TP\n    assignment code to check whether bio-\u003ebi_bdev is %NULL before\n    dereferencing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nOriginal-patch-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Alasdair Kergon \u003cagk@redhat.com\u003e\nCc: dm-devel@redhat.com\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aca5d82ff13c2fed7efa872a9d14d0077ad4374f",
      "old_mode": 33188,
      "old_path": "block/blk-core.c",
      "new_id": "4f5aec708be6faced0dc54f0eb74c83a771f7bd5",
      "new_mode": 33188,
      "new_path": "block/blk-core.c"
    },
    {
      "type": "modify",
      "old_id": "c72e4d5a96178c6a542442e2e66bd3da92473b50",
      "old_mode": 33188,
      "old_path": "drivers/md/dm.c",
      "new_id": "650ec2866e342a5833dad8d62f82318de86d1d69",
      "new_mode": 33188,
      "new_path": "drivers/md/dm.c"
    },
    {
      "type": "modify",
      "old_id": "19d77a02663972c3daa9d74295c820d2bb85ba37",
      "old_mode": 33188,
      "old_path": "drivers/md/raid5.c",
      "new_id": "9ab506df42daf84c7ad4397552e958ec3fa9bddf",
      "new_mode": 33188,
      "new_path": "drivers/md/raid5.c"
    },
    {
      "type": "modify",
      "old_id": "b96fc6ce485595f0179bc909c807ae197258e671",
      "old_mode": 33188,
      "old_path": "fs/bio.c",
      "new_id": "bb5768f59b32e22fdcde250f0ae8b01eb6b69b48",
      "new_mode": 33188,
      "new_path": "fs/bio.c"
    },
    {
      "type": "modify",
      "old_id": "7c2e030e72f10542612ba34ce79b18f6b1b8ad06",
      "old_mode": 33188,
      "old_path": "include/linux/blktrace_api.h",
      "new_id": "0ea61e07a91c03053833faf3a4250e1f6023a10d",
      "new_mode": 33188,
      "new_path": "include/linux/blktrace_api.h"
    },
    {
      "type": "modify",
      "old_id": "05c5e61f0a7ca23b03a6a965a375323ea2b37036",
      "old_mode": 33188,
      "old_path": "include/trace/events/block.h",
      "new_id": "8a168db9a645c292085e28b94e7331563ed5e116",
      "new_mode": 33188,
      "new_path": "include/trace/events/block.h"
    },
    {
      "type": "modify",
      "old_id": "c0bd0308741ca1a343a9cbc0b551b4a12438ddd7",
      "old_mode": 33188,
      "old_path": "kernel/trace/blktrace.c",
      "new_id": "190d98fbed2763271c221fba6a86c3f33eb7530c",
      "new_mode": 33188,
      "new_path": "kernel/trace/blktrace.c"
    }
  ]
}
