diff options
| author | Alberto Faria <afaria@redhat.com> | 2022-07-05 17:15:09 +0100 |
|---|---|---|
| committer | Hanna Reitz <hreitz@redhat.com> | 2022-07-12 12:14:56 +0200 |
| commit | bf5b16fa401633475d21d69c66532f5b29e8433d (patch) | |
| tree | 60779d913b400906135b6bbce90d6128a52ac3ef /qemu-io-cmds.c | |
| parent | 92529251d2333ea07176cdbd7273483064ba5a7b (diff) | |
| download | focaccia-qemu-bf5b16fa401633475d21d69c66532f5b29e8433d.tar.gz focaccia-qemu-bf5b16fa401633475d21d69c66532f5b29e8433d.zip | |
block: Make blk_{pread,pwrite}() return 0 on success
They currently return the value of their 'bytes' parameter on success. Make them return 0 instead, for consistency with other I/O functions and in preparation to implement them using generated_co_wrapper. This also makes it clear that short reads/writes are not possible. Signed-off-by: Alberto Faria <afaria@redhat.com> Message-Id: <20220705161527.1054072-2-afaria@redhat.com> Reviewed-by: Hanna Reitz <hreitz@redhat.com> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Diffstat (limited to 'qemu-io-cmds.c')
| -rw-r--r-- | qemu-io-cmds.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/qemu-io-cmds.c b/qemu-io-cmds.c index 2f0d8ac25a..443f22c732 100644 --- a/qemu-io-cmds.c +++ b/qemu-io-cmds.c @@ -541,28 +541,34 @@ fail: static int do_pread(BlockBackend *blk, char *buf, int64_t offset, int64_t bytes, int64_t *total) { + int ret; + if (bytes > INT_MAX) { return -ERANGE; } - *total = blk_pread(blk, offset, (uint8_t *)buf, bytes); - if (*total < 0) { - return *total; + ret = blk_pread(blk, offset, (uint8_t *)buf, bytes); + if (ret < 0) { + return ret; } + *total = bytes; return 1; } static int do_pwrite(BlockBackend *blk, char *buf, int64_t offset, int64_t bytes, int flags, int64_t *total) { + int ret; + if (bytes > INT_MAX) { return -ERANGE; } - *total = blk_pwrite(blk, offset, (uint8_t *)buf, bytes, flags); - if (*total < 0) { - return *total; + ret = blk_pwrite(blk, offset, (uint8_t *)buf, bytes, flags); + if (ret < 0) { + return ret; } + *total = bytes; return 1; } |