提交 01edede4 编写于 作者: M Minchan Kim 提交者: Jens Axboe

block: trace bio queueing trial only when it occurs

If BIO is discarded or cross over end of device,
BIO queueing trial doesn't occur.

Actually the trace was called just before make_request at first:
[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23
      2056a782

And then 2 patches added some checks between them:
[PATCH] md: check bio address after mapping through partitions
        5ddfe969,
[BLOCK] Don't allow empty barriers to be passed down to
queues that don't grok them
        51fd77bd

It breaks original goal.
Let's trace it only when it happens.
Signed-off-by: NMinchan Kim <minchan.kim@gmail.com>
Acked-by: NWu Fengguang <fengguang.wu@intel.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
上级 01e97f6b
......@@ -1462,8 +1462,6 @@ static inline void __generic_make_request(struct bio *bio)
if (old_sector != -1)
trace_block_remap(q, bio, old_dev, old_sector);
trace_block_bio_queue(q, bio);
old_sector = bio->bi_sector;
old_dev = bio->bi_bdev->bd_dev;
......@@ -1476,6 +1474,8 @@ static inline void __generic_make_request(struct bio *bio)
goto end_io;
}
trace_block_bio_queue(q, bio);
ret = q->make_request_fn(q, bio);
} while (ret);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册