[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 18/24] block: Use uint64_t for BdrvTrackedRequest byt
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 18/24] block: Use uint64_t for BdrvTrackedRequest byte fields |
Date: |
Tue, 10 Jul 2018 17:42:58 +0200 |
From: Fam Zheng <address@hidden>
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 <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
include/block/block_int.h | 4 ++--
block/io.c | 8 +++++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/include/block/block_int.h b/include/block/block_int.h
index 920d3d122b..903b9c1034 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -69,12 +69,12 @@ enum BdrvTrackedRequestType {
typedef struct BdrvTrackedRequest {
BlockDriverState *bs;
int64_t offset;
- unsigned int bytes;
+ uint64_t bytes;
enum BdrvTrackedRequestType type;
bool serialising;
int64_t overlap_offset;
- unsigned int overlap_bytes;
+ uint64_t overlap_bytes;
QLIST_ENTRY(BdrvTrackedRequest) list;
Coroutine *co; /* owner, used for deadlock detection */
diff --git a/block/io.c b/block/io.c
index fbcd93304b..6293612e73 100644
--- a/block/io.c
+++ b/block/io.c
@@ -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) {
--
2.13.6
- [Qemu-devel] [PULL 08/24] block/backup: fix fleecing scheme: use serialized writes, (continued)
- [Qemu-devel] [PULL 08/24] block/backup: fix fleecing scheme: use serialized writes, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 10/24] block/blklogwrites: Make sure the log sector size is not too small, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 06/24] block: split flags in copy_range, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 09/24] qapi/block-core.json: Add missing documentation for blklogwrites log-append option, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 11/24] Revert "block: Remove dead deprecation warning code", Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 15/24] block: Prefix file driver trace points with "file_", Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 13/24] Revert "block: Remove deprecated -drive option addr", Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 12/24] Revert "block: Remove deprecated -drive option serial", Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 16/24] block: Add copy offloading trace points, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 14/24] Revert "block: Remove deprecated -drive geometry options", Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 18/24] block: Use uint64_t for BdrvTrackedRequest byte fields,
Kevin Wolf <=
- [Qemu-devel] [PULL 22/24] block: Use common req handling in copy offloading, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 21/24] block: Use common req handling for discard, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 19/24] block: Extract common write req handling, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 20/24] block: Fix handling of image enlarging write, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 23/24] block: Fix bdrv_co_truncate overlap check, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 17/24] block: Use BdrvChild to discard, Kevin Wolf, 2018/07/10
- [Qemu-devel] [PULL 24/24] block: Use common write req handling in truncate, Kevin Wolf, 2018/07/10
- Re: [Qemu-devel] [PULL 00/24] Block layer patches, Peter Maydell, 2018/07/10