mirror of https://github.com/xemu-project/xemu.git
block: move bdrv_qiov_is_aligned to file-posix
There is only user of bdrv_qiov_is_aligned(), so move the alignment function to there and make it static. Signed-off-by: Keith Busch <kbusch@kernel.org> Message-Id: <20220929200523.3218710-2-kbusch@meta.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
283153f10a
commit
a7c5f67a78
|
@ -2061,6 +2061,27 @@ static int coroutine_fn raw_thread_pool_submit(BlockDriverState *bs,
|
||||||
return thread_pool_submit_co(pool, func, arg);
|
return thread_pool_submit_co(pool, func, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if all memory in this vector is sector aligned.
|
||||||
|
*/
|
||||||
|
static bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
size_t alignment = bdrv_min_mem_align(bs);
|
||||||
|
IO_CODE();
|
||||||
|
|
||||||
|
for (i = 0; i < qiov->niov; i++) {
|
||||||
|
if ((uintptr_t) qiov->iov[i].iov_base % alignment) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (qiov->iov[i].iov_len % alignment) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static int coroutine_fn raw_co_prw(BlockDriverState *bs, uint64_t offset,
|
static int coroutine_fn raw_co_prw(BlockDriverState *bs, uint64_t offset,
|
||||||
uint64_t bytes, QEMUIOVector *qiov, int type)
|
uint64_t bytes, QEMUIOVector *qiov, int type)
|
||||||
{
|
{
|
||||||
|
|
21
block/io.c
21
block/io.c
|
@ -3227,27 +3227,6 @@ void *qemu_try_blockalign0(BlockDriverState *bs, size_t size)
|
||||||
return mem;
|
return mem;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Check if all memory in this vector is sector aligned.
|
|
||||||
*/
|
|
||||||
bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
size_t alignment = bdrv_min_mem_align(bs);
|
|
||||||
IO_CODE();
|
|
||||||
|
|
||||||
for (i = 0; i < qiov->niov; i++) {
|
|
||||||
if ((uintptr_t) qiov->iov[i].iov_base % alignment) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (qiov->iov[i].iov_len % alignment) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void bdrv_io_plug(BlockDriverState *bs)
|
void bdrv_io_plug(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
BdrvChild *child;
|
BdrvChild *child;
|
||||||
|
|
|
@ -150,7 +150,6 @@ void *qemu_blockalign(BlockDriverState *bs, size_t size);
|
||||||
void *qemu_blockalign0(BlockDriverState *bs, size_t size);
|
void *qemu_blockalign0(BlockDriverState *bs, size_t size);
|
||||||
void *qemu_try_blockalign(BlockDriverState *bs, size_t size);
|
void *qemu_try_blockalign(BlockDriverState *bs, size_t size);
|
||||||
void *qemu_try_blockalign0(BlockDriverState *bs, size_t size);
|
void *qemu_try_blockalign0(BlockDriverState *bs, size_t size);
|
||||||
bool bdrv_qiov_is_aligned(BlockDriverState *bs, QEMUIOVector *qiov);
|
|
||||||
|
|
||||||
void bdrv_enable_copy_on_read(BlockDriverState *bs);
|
void bdrv_enable_copy_on_read(BlockDriverState *bs);
|
||||||
void bdrv_disable_copy_on_read(BlockDriverState *bs);
|
void bdrv_disable_copy_on_read(BlockDriverState *bs);
|
||||||
|
|
Loading…
Reference in New Issue