diff options
author | Edward Hsieh <edwardh@synology.com> | 2021-06-24 20:30:30 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-06-24 09:53:50 -0600 |
commit | 60b6a7e6a0f4382cd689f9afdac816964fec2921 (patch) | |
tree | 7b5fd7251cbc4c3430b61ff3b641b651bc1f6da4 /block/Makefile | |
parent | ddcc5c544eb0991501761622b651cf43ce660a22 (diff) | |
download | linux-60b6a7e6a0f4382cd689f9afdac816964fec2921.tar.gz |
block: fix trace completion for chained bio
For chained bio, trace_block_bio_complete in bio_endio is currently called
only by the parent bio once upon all chained bio completed.
However, the sector and size for the parent bio are modified in bio_split.
Therefore, the size and sector of the complete events might not match the
queue events in blktrace.
The original fix of bio completion trace <fbbaf700e7b1> ("block: trace
completion of all bios.") wants multiple complete events to correspond
to one queue event but missed this.
The issue can be reproduced by md/raid5 read with bio cross chunks.
To fix, move trace completion into the loop for every chained bio to call.
Fixes: fbbaf700e7b1 ("block: trace completion of all bios.")
Reviewed-by: Wade Liang <wadel@synology.com>
Reviewed-by: BingJing Chang <bingjingc@synology.com>
Signed-off-by: Edward Hsieh <edwardh@synology.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210624123030.27014-1-edwardh@synology.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/Makefile')
0 files changed, 0 insertions, 0 deletions