Commit 02aefe43 authored by Eric Blake's avatar Eric Blake Committed by Stefan Hajnoczi
Browse files

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: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Message-id: 1468624988-423-18-git-send-email-eblake@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent dde47537
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -2423,14 +2423,12 @@ int coroutine_fn bdrv_co_pdiscard(BlockDriverState *bs, int64_t offset,
        return 0;
    }

    if (!bs->drv->bdrv_co_discard && !bs->drv->bdrv_co_pdiscard &&
        !bs->drv->bdrv_aio_pdiscard) {
    if (!bs->drv->bdrv_co_pdiscard && !bs->drv->bdrv_aio_pdiscard) {
        return 0;
    }

    /* Discard is advisory, so ignore any unaligned head or tail */
    align = MAX(BDRV_SECTOR_SIZE,
                MAX(bs->bl.pdiscard_alignment, bs->bl.request_alignment));
    align = MAX(bs->bl.pdiscard_alignment, bs->bl.request_alignment);
    assert(is_power_of_2(align));
    head = MIN(count, -offset & (align - 1));
    if (head) {
@@ -2458,9 +2456,6 @@ int coroutine_fn bdrv_co_pdiscard(BlockDriverState *bs, int64_t offset,

        if (bs->drv->bdrv_co_pdiscard) {
            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 {
            BlockAIOCB *acb;
            CoroutineIOCompletion co = {
+0 −2
Original line number Diff line number Diff line
@@ -165,8 +165,6 @@ struct BlockDriver {
     */
    int coroutine_fn (*bdrv_co_pwrite_zeroes)(BlockDriverState *bs,
        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,
        int64_t offset, int count);
    int64_t coroutine_fn (*bdrv_co_get_block_status)(BlockDriverState *bs,