mirror of https://github.com/xqemu/xqemu.git
block: Kill .bdrv_co_discard()
Now that all drivers have a byte-based .bdrv_co_pdiscard(), we no longer need to worry about the sector-based version. We can also relax our minimum alignment to 1 for drivers that support it. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1468624988-423-18-git-send-email-eblake@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
dde4753763
commit
02aefe43cb
|
@ -2423,14 +2423,12 @@ int coroutine_fn bdrv_co_pdiscard(BlockDriverState *bs, int64_t offset,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!bs->drv->bdrv_co_discard && !bs->drv->bdrv_co_pdiscard &&
|
if (!bs->drv->bdrv_co_pdiscard && !bs->drv->bdrv_aio_pdiscard) {
|
||||||
!bs->drv->bdrv_aio_pdiscard) {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Discard is advisory, so ignore any unaligned head or tail */
|
/* Discard is advisory, so ignore any unaligned head or tail */
|
||||||
align = MAX(BDRV_SECTOR_SIZE,
|
align = MAX(bs->bl.pdiscard_alignment, bs->bl.request_alignment);
|
||||||
MAX(bs->bl.pdiscard_alignment, bs->bl.request_alignment));
|
|
||||||
assert(is_power_of_2(align));
|
assert(is_power_of_2(align));
|
||||||
head = MIN(count, -offset & (align - 1));
|
head = MIN(count, -offset & (align - 1));
|
||||||
if (head) {
|
if (head) {
|
||||||
|
@ -2458,9 +2456,6 @@ int coroutine_fn bdrv_co_pdiscard(BlockDriverState *bs, int64_t offset,
|
||||||
|
|
||||||
if (bs->drv->bdrv_co_pdiscard) {
|
if (bs->drv->bdrv_co_pdiscard) {
|
||||||
ret = bs->drv->bdrv_co_pdiscard(bs, offset, num);
|
ret = bs->drv->bdrv_co_pdiscard(bs, offset, num);
|
||||||
} else if (bs->drv->bdrv_co_discard) {
|
|
||||||
ret = bs->drv->bdrv_co_discard(bs, offset >> BDRV_SECTOR_BITS,
|
|
||||||
num >> BDRV_SECTOR_BITS);
|
|
||||||
} else {
|
} else {
|
||||||
BlockAIOCB *acb;
|
BlockAIOCB *acb;
|
||||||
CoroutineIOCompletion co = {
|
CoroutineIOCompletion co = {
|
||||||
|
|
|
@ -165,8 +165,6 @@ struct BlockDriver {
|
||||||
*/
|
*/
|
||||||
int coroutine_fn (*bdrv_co_pwrite_zeroes)(BlockDriverState *bs,
|
int coroutine_fn (*bdrv_co_pwrite_zeroes)(BlockDriverState *bs,
|
||||||
int64_t offset, int count, BdrvRequestFlags flags);
|
int64_t offset, int count, BdrvRequestFlags flags);
|
||||||
int coroutine_fn (*bdrv_co_discard)(BlockDriverState *bs,
|
|
||||||
int64_t sector_num, int nb_sectors);
|
|
||||||
int coroutine_fn (*bdrv_co_pdiscard)(BlockDriverState *bs,
|
int coroutine_fn (*bdrv_co_pdiscard)(BlockDriverState *bs,
|
||||||
int64_t offset, int count);
|
int64_t offset, int count);
|
||||||
int64_t coroutine_fn (*bdrv_co_get_block_status)(BlockDriverState *bs,
|
int64_t coroutine_fn (*bdrv_co_get_block_status)(BlockDriverState *bs,
|
||||||
|
|
Loading…
Reference in New Issue