Message ID | 20211006131718.214235-5-vsementsov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | block: 64bit blk io | expand |
On Wed, Oct 06, 2021 at 03:17:10PM +0200, Vladimir Sementsov-Ogievskiy wrote: > We updated blk_do_pdiscard() and its wrapper blk_co_pdiscard(). Both > functions are updated so that parameter type becomes wider, so all > callers should be OK with it. > > Look at blk_do_pdiscard(): bytes passed only to > blk_check_byte_request() and bdrv_co_pdiscard(), which already has > int64_t bytes parameter, so we are OK. > > Note that requests exceeding INT_MAX are still restricted by > blk_check_byte_request(). > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > --- > include/sysemu/block-backend.h | 3 ++- > block/block-backend.c | 5 +++-- > 2 files changed, 5 insertions(+), 3 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com> > > diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h > index 844bb039c5..398e7abb02 100644 > --- a/include/sysemu/block-backend.h > +++ b/include/sysemu/block-backend.h > @@ -181,7 +181,8 @@ void blk_aio_cancel_async(BlockAIOCB *acb); > int blk_ioctl(BlockBackend *blk, unsigned long int req, void *buf); > BlockAIOCB *blk_aio_ioctl(BlockBackend *blk, unsigned long int req, void *buf, > BlockCompletionFunc *cb, void *opaque); > -int blk_co_pdiscard(BlockBackend *blk, int64_t offset, int bytes); > +int coroutine_fn blk_co_pdiscard(BlockBackend *blk, int64_t offset, > + int64_t bytes); Commit message didn't mention the addition of this label, but it looks correct. > int blk_co_flush(BlockBackend *blk); I guess fixing blk_co_flush to have the coroutine_fn label would be a separate patch. Or, you could rearrange the patches to add the label on multiple functions independently from type changes.
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 844bb039c5..398e7abb02 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -181,7 +181,8 @@ void blk_aio_cancel_async(BlockAIOCB *acb); int blk_ioctl(BlockBackend *blk, unsigned long int req, void *buf); BlockAIOCB *blk_aio_ioctl(BlockBackend *blk, unsigned long int req, void *buf, BlockCompletionFunc *cb, void *opaque); -int blk_co_pdiscard(BlockBackend *blk, int64_t offset, int bytes); +int coroutine_fn blk_co_pdiscard(BlockBackend *blk, int64_t offset, + int64_t bytes); int blk_co_flush(BlockBackend *blk); int blk_flush(BlockBackend *blk); int blk_commit_all(void); diff --git a/block/block-backend.c b/block/block-backend.c index b09ec5a7c7..e408893985 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -1626,7 +1626,7 @@ BlockAIOCB *blk_aio_ioctl(BlockBackend *blk, unsigned long int req, void *buf, /* To be called between exactly one pair of blk_inc/dec_in_flight() */ static int coroutine_fn -blk_do_pdiscard(BlockBackend *blk, int64_t offset, int bytes) +blk_do_pdiscard(BlockBackend *blk, int64_t offset, int64_t bytes) { int ret; @@ -1657,7 +1657,8 @@ BlockAIOCB *blk_aio_pdiscard(BlockBackend *blk, cb, opaque); } -int coroutine_fn blk_co_pdiscard(BlockBackend *blk, int64_t offset, int bytes) +int coroutine_fn blk_co_pdiscard(BlockBackend *blk, int64_t offset, + int64_t bytes) { int ret;
We updated blk_do_pdiscard() and its wrapper blk_co_pdiscard(). Both functions are updated so that parameter type becomes wider, so all callers should be OK with it. Look at blk_do_pdiscard(): bytes passed only to blk_check_byte_request() and bdrv_co_pdiscard(), which already has int64_t bytes parameter, so we are OK. Note that requests exceeding INT_MAX are still restricted by blk_check_byte_request(). Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> --- include/sysemu/block-backend.h | 3 ++- block/block-backend.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-)