mirror of https://github.com/xqemu/xqemu.git
BlockLimits: introduce max_transfer_length
Signed-off-by: Peter Lieven <pl@kamp.de> Reviewed-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
ac3a872664
commit
2647fab57d
4
block.c
4
block.c
|
@ -519,6 +519,7 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
bs->bl.opt_transfer_length = bs->file->bl.opt_transfer_length;
|
bs->bl.opt_transfer_length = bs->file->bl.opt_transfer_length;
|
||||||
|
bs->bl.max_transfer_length = bs->file->bl.max_transfer_length;
|
||||||
bs->bl.opt_mem_alignment = bs->file->bl.opt_mem_alignment;
|
bs->bl.opt_mem_alignment = bs->file->bl.opt_mem_alignment;
|
||||||
} else {
|
} else {
|
||||||
bs->bl.opt_mem_alignment = 512;
|
bs->bl.opt_mem_alignment = 512;
|
||||||
|
@ -533,6 +534,9 @@ void bdrv_refresh_limits(BlockDriverState *bs, Error **errp)
|
||||||
bs->bl.opt_transfer_length =
|
bs->bl.opt_transfer_length =
|
||||||
MAX(bs->bl.opt_transfer_length,
|
MAX(bs->bl.opt_transfer_length,
|
||||||
bs->backing_hd->bl.opt_transfer_length);
|
bs->backing_hd->bl.opt_transfer_length);
|
||||||
|
bs->bl.max_transfer_length =
|
||||||
|
MIN_NON_ZERO(bs->bl.max_transfer_length,
|
||||||
|
bs->backing_hd->bl.max_transfer_length);
|
||||||
bs->bl.opt_mem_alignment =
|
bs->bl.opt_mem_alignment =
|
||||||
MAX(bs->bl.opt_mem_alignment,
|
MAX(bs->bl.opt_mem_alignment,
|
||||||
bs->backing_hd->bl.opt_mem_alignment);
|
bs->backing_hd->bl.opt_mem_alignment);
|
||||||
|
|
|
@ -289,6 +289,9 @@ typedef struct BlockLimits {
|
||||||
/* optimal transfer length in sectors */
|
/* optimal transfer length in sectors */
|
||||||
int opt_transfer_length;
|
int opt_transfer_length;
|
||||||
|
|
||||||
|
/* maximal transfer length in sectors */
|
||||||
|
int max_transfer_length;
|
||||||
|
|
||||||
/* memory alignment so that no bounce buffer is needed */
|
/* memory alignment so that no bounce buffer is needed */
|
||||||
size_t opt_mem_alignment;
|
size_t opt_mem_alignment;
|
||||||
} BlockLimits;
|
} BlockLimits;
|
||||||
|
|
Loading…
Reference in New Issue