summaryrefslogtreecommitdiff
path: root/include/linux/kernel.h
diff options
context:
space:
mode:
authorJoe Thornber <joe@fib011235813.fsnet.co.uk>2002-12-15 17:17:21 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-12-15 17:17:21 -0800
commitd68017fa937625abf9b4608dc9e619f485c34462 (patch)
treeea1a64fe3e9d3dd7765c3c1075c284f8d1f03886 /include/linux/kernel.h
parentbef272c4608ecc5b6308a27304cebea9efaf58a6 (diff)
[PATCH] dm: bio split fix
The block layer does not honour bio->bi_size when issuing io, instead it performs io to the complete bvecs. This means we have to change the bio splitting code slightly. Given a bio we repeatedly apply one of the following three operations until there is no more io left in the bio: 1) The remaining io does not cross an io/target boundary, so just create a clone and issue all of the io. 2) There are some bvecs at the start of the bio that are not split by a target boundary. Create a clone for these bvecs only. 3) The first bvec needs splitting, use bio_alloc() to create *two* bios, one for the first half of the bvec, the other for the second half. A bvec can never contain more than one boundary.
Diffstat (limited to 'include/linux/kernel.h')
0 files changed, 0 insertions, 0 deletions