diff options
| author | Alberto Faria | 2022-06-09 17:27:41 +0200 |
|---|---|---|
| committer | Hanna Reitz | 2022-07-12 12:14:56 +0200 |
| commit | 1d39c7098bbfa6862cb96066c4f8f6735ea397c5 (patch) | |
| tree | 35affba54813edbb2151a09fd31c1ec404d5ab22 /include/block | |
| parent | block: Make 'bytes' param of bdrv_co_{pread,pwrite,preadv,pwritev}() an int64_t (diff) | |
| download | qemu-1d39c7098bbfa6862cb96066c4f8f6735ea397c5.tar.gz qemu-1d39c7098bbfa6862cb96066c4f8f6735ea397c5.tar.xz qemu-1d39c7098bbfa6862cb96066c4f8f6735ea397c5.zip | |
block: Implement bdrv_{pread,pwrite,pwrite_zeroes}() using generated_co_wrapper
bdrv_{pread,pwrite}() now return -EIO instead of -EINVAL when 'bytes' is
negative, making them consistent with bdrv_{preadv,pwritev}() and
bdrv_co_{pread,pwrite,preadv,pwritev}().
bdrv_pwrite_zeroes() now also calls trace_bdrv_co_pwrite_zeroes() and
clears the BDRV_REQ_MAY_UNMAP flag when appropriate, which it didn't
previously.
Signed-off-by: Alberto Faria <afaria@redhat.com>
Message-Id: <20220609152744.3891847-8-afaria@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Signed-off-by: Hanna Reitz <hreitz@redhat.com>
Diffstat (limited to 'include/block')
| -rw-r--r-- | include/block/block-io.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/include/block/block-io.h b/include/block/block-io.h index ecce56c096..260f669d89 100644 --- a/include/block/block-io.h +++ b/include/block/block-io.h @@ -39,13 +39,16 @@ * to catch when they are accidentally called by the wrong API. */ -int bdrv_pwrite_zeroes(BdrvChild *child, int64_t offset, - int64_t bytes, BdrvRequestFlags flags); +int generated_co_wrapper bdrv_pwrite_zeroes(BdrvChild *child, int64_t offset, + int64_t bytes, + BdrvRequestFlags flags); int bdrv_make_zero(BdrvChild *child, BdrvRequestFlags flags); -int bdrv_pread(BdrvChild *child, int64_t offset, int64_t bytes, void *buf, - BdrvRequestFlags flags); -int bdrv_pwrite(BdrvChild *child, int64_t offset, int64_t bytes, - const void *buf, BdrvRequestFlags flags); +int generated_co_wrapper bdrv_pread(BdrvChild *child, int64_t offset, + int64_t bytes, void *buf, + BdrvRequestFlags flags); +int generated_co_wrapper bdrv_pwrite(BdrvChild *child, int64_t offset, + int64_t bytes, const void *buf, + BdrvRequestFlags flags); int bdrv_pwrite_sync(BdrvChild *child, int64_t offset, int64_t bytes, const void *buf, BdrvRequestFlags flags); /* |
