On Fri, Jul 15, 2016 at 12:31:58PM -0600, Eric Blake wrote: > We have max_transfer documented in BlockLimits, but while we > honor it during pwrite_zeroes, we were blindly ignoring it > during pwritev and preadv, leading to multiple drivers having > to implement fragmentation themselves. This series moves > fragmentation to the block layer, then fixes the NBD and iscsi > driver to use it. > > qcow2 still does self-fragmenting, but that's because of cluster > boundaries where it really has to do additional work beyond what > the block layer can automatically provide. > > Prequisite: Kevin's latest block branch PULL request > > Also available as a tag at: > git fetch git://repo.or.cz/qemu/ericb.git nbd-fragment-v3 > > Changes since v2: > - patch 1, 3: change return semantics to be 0, not bytes, on success, > since at least one caller asserts during 'make check' otherwise > > 001/6:[0008] [FC] 'block: Fragment reads to max transfer length' > 002/6:[----] [--] 'raw_bsd: Don't advertise flags not supported by protocol > layer' > 003/6:[0002] [FC] 'block: Fragment writes to max transfer length' > 004/6:[----] [--] 'nbd: Rely on block layer to break up large requests' > 005/6:[----] [--] 'nbd: Drop unused offset parameter' > 006/6:[----] [--] 'iscsi: Rely on block layer to break up large requests' > > Eric Blake (6): > block: Fragment reads to max transfer length > raw_bsd: Don't advertise flags not supported by protocol layer > block: Fragment writes to max transfer length > nbd: Rely on block layer to break up large requests > nbd: Drop unused offset parameter > iscsi: Rely on block layer to break up large requests > > include/block/nbd.h | 1 - > nbd/nbd-internal.h | 4 +-- > block/io.c | 90 > +++++++++++++++++++++++++++++++++++++++-------------- > block/iscsi.c | 14 +++------ > block/nbd-client.c | 78 +++++++++++++--------------------------------- > block/nbd.c | 12 ++----- > block/raw_bsd.c | 6 ++-- > nbd/common.c | 5 +-- > 8 files changed, 103 insertions(+), 107 deletions(-) > > -- > 2.5.5 > >
Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
signature.asc
Description: PGP signature