mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
block: Use uint64_t for BdrvTrackedRequest byte fields
This matches the types used for bytes in the rest parts of block layer. In the case of bdrv_co_truncate, new_bytes can be the image size which probably doesn't fit in a 32 bit int. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
0b9fd3f467
commit
22931a1533
2 changed files with 7 additions and 5 deletions
|
@ -601,9 +601,11 @@ static void tracked_request_end(BdrvTrackedRequest *req)
|
|||
static void tracked_request_begin(BdrvTrackedRequest *req,
|
||||
BlockDriverState *bs,
|
||||
int64_t offset,
|
||||
unsigned int bytes,
|
||||
uint64_t bytes,
|
||||
enum BdrvTrackedRequestType type)
|
||||
{
|
||||
assert(bytes <= INT64_MAX && offset <= INT64_MAX - bytes);
|
||||
|
||||
*req = (BdrvTrackedRequest){
|
||||
.bs = bs,
|
||||
.offset = offset,
|
||||
|
@ -625,7 +627,7 @@ static void tracked_request_begin(BdrvTrackedRequest *req,
|
|||
static void mark_request_serialising(BdrvTrackedRequest *req, uint64_t align)
|
||||
{
|
||||
int64_t overlap_offset = req->offset & ~(align - 1);
|
||||
unsigned int overlap_bytes = ROUND_UP(req->offset + req->bytes, align)
|
||||
uint64_t overlap_bytes = ROUND_UP(req->offset + req->bytes, align)
|
||||
- overlap_offset;
|
||||
|
||||
if (!req->serialising) {
|
||||
|
@ -683,7 +685,7 @@ static int bdrv_get_cluster_size(BlockDriverState *bs)
|
|||
}
|
||||
|
||||
static bool tracked_request_overlaps(BdrvTrackedRequest *req,
|
||||
int64_t offset, unsigned int bytes)
|
||||
int64_t offset, uint64_t bytes)
|
||||
{
|
||||
/* aaaa bbbb */
|
||||
if (offset >= req->overlap_offset + req->overlap_bytes) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue