Am 25.05.2016 um 00:25 hat Eric Blake geschrieben: > Another step towards removing sector-based interfaces: convert > the maximum write and minimum alignment values from sectorss to
s/sectorss/sectors/ > bytes. Alignment is changed to 'int', since it makes no sense > to have an alignment larger than the maximum write. Add an > assert that no one was trying to use sectors to get a write > zeroes larger than 2G. Rename the variables to let the compiler > check that all users are converted to the new semantics. > > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- a/block/iscsi.c > +++ b/block/iscsi.c > @@ -1706,12 +1706,10 @@ static void iscsi_refresh_limits(BlockDriverState > *bs, Error **errp) > } > > if (iscsilun->bl.max_ws_len < 0xffffffff) { > - bs->bl.max_write_zeroes = > - sector_limits_lun2qemu(iscsilun->bl.max_ws_len, iscsilun); > + bs->bl.max_pwrite_zeroes = iscsilun->bl.max_ws_len; Wrong unit, I think. You need to multiply by iscsi_lun->block_size. > } > if (iscsilun->lbp.lbpws) { > - bs->bl.write_zeroes_alignment = > - sector_limits_lun2qemu(iscsilun->bl.opt_unmap_gran, iscsilun); > + bs->bl.pwrite_zeroes_alignment = iscsilun->bl.opt_unmap_gran; Same here. > } > bs->bl.opt_transfer_length = > sector_limits_lun2qemu(iscsilun->bl.opt_xfer_len, iscsilun); > diff --git a/block/qcow2.c b/block/qcow2.c > index c9306a7..745b66f 100644 > --- a/block/qcow2.c > +++ b/block/qcow2.c > @@ -1193,7 +1193,7 @@ static void qcow2_refresh_limits(BlockDriverState *bs, > Error **errp) > { > BDRVQcow2State *s = bs->opaque; > > - bs->bl.write_zeroes_alignment = s->cluster_sectors; > + bs->bl.pwrite_zeroes_alignment = s->cluster_sectors << BDRV_SECTOR_BITS; This is s->cluster_size. I hope to get rid of s->cluster_sectors eventually. :-) Kevin