summaryrefslogtreecommitdiffstats
path: root/Documentation/usb
diff options
context:
space:
mode:
authorMing Lei <ming.lei@redhat.com>2017-04-14 13:58:29 -0600
committerJens Axboe <axboe@fb.com>2017-04-14 13:58:29 -0600
commit5a8d75a1b8c99bdc926ba69b7b7dbe4fae81a5af (patch)
treeb3146bd262d61f48bd998bff06ddb1fe4d9edac5 /Documentation/usb
parentc6c64a942c87faa6fca68f5dd208094b8cf61236 (diff)
downloadlinux-stable-5a8d75a1b8c99bdc926ba69b7b7dbe4fae81a5af.tar.gz
linux-stable-5a8d75a1b8c99bdc926ba69b7b7dbe4fae81a5af.tar.bz2
linux-stable-5a8d75a1b8c99bdc926ba69b7b7dbe4fae81a5af.zip
block: fix bio_will_gap() for first bvec with offset
Commit 729204ef49ec("block: relax check on sg gap") allows us to merge bios, if both are physically contiguous. This change can merge a huge number of small bios, through mkfs for example, mkfs.ntfs running time can be decreased to ~1/10. But if one rq starts with a non-aligned buffer (the 1st bvec's bv_offset is non-zero) and if we allow the merge, it is quite difficult to respect sg gap limit, especially the max segment size, or we risk having an unaligned virtual boundary. This patch tries to avoid the issue by disallowing a merge, if the req starts with an unaligned buffer. Also add comments to explain why the merged segment can't end in unaligned virt boundary. Fixes: 729204ef49ec ("block: relax check on sg gap") Tested-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Ming Lei <ming.lei@redhat.com> Rewrote parts of the commit message and comments. Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'Documentation/usb')
0 files changed, 0 insertions, 0 deletions