Commit 43ca85b5 authored by Frediano Ziglio's avatar Frediano Ziglio Committed by Kevin Wolf
Browse files

qcow: move some blocks of code to avoid useless variable initialization

parent 430bbaaa
Loading
Loading
Loading
Loading
+26 −27
Original line number Diff line number Diff line
@@ -522,35 +522,18 @@ static int qcow_aio_read_cb(QCowAIOCB *acb)
    BlockDriverState *bs = acb->bs;
    BDRVQcowState *s = bs->opaque;
    int index_in_cluster;
    int ret, n = 0;
    uint64_t cluster_offset = 0;
    int ret, n;
    uint64_t cluster_offset;
    struct iovec hd_iov;
    QEMUIOVector hd_qiov;

 redo:
    /* post process the read buffer */
    if (!cluster_offset) {
        /* nothing to do */
    } else if (cluster_offset & QCOW_OFLAG_COMPRESSED) {
        /* nothing to do */
    } else {
        if (s->crypt_method) {
            encrypt_sectors(s, acb->sector_num, acb->buf, acb->buf,
                            n, 0,
                            &s->aes_decrypt_key);
        }
    }

    acb->nb_sectors -= n;
    acb->sector_num += n;
    acb->buf += n * 512;

    if (acb->nb_sectors == 0) {
        /* request completed */
        return 0;
    }

    /* prepare next AIO request */
    /* prepare next request */
    cluster_offset = get_cluster_offset(bs, acb->sector_num << 9,
                                             0, 0, 0, 0);
    index_in_cluster = acb->sector_num & (s->cluster_sectors - 1);
@@ -575,7 +558,6 @@ static int qcow_aio_read_cb(QCowAIOCB *acb)
        } else {
            /* Note: in this case, no need to wait */
            memset(acb->buf, 0, 512 * n);
            goto redo;
        }
    } else if (cluster_offset & QCOW_OFLAG_COMPRESSED) {
        /* add AIO support for compressed blocks ? */
@@ -584,7 +566,6 @@ static int qcow_aio_read_cb(QCowAIOCB *acb)
        }
        memcpy(acb->buf,
               s->cluster_cache + index_in_cluster * 512, 512 * n);
        goto redo;
    } else {
        if ((cluster_offset & 511) != 0) {
            return -EIO;
@@ -602,6 +583,23 @@ static int qcow_aio_read_cb(QCowAIOCB *acb)
        }
    }

    /* post process the read buffer */
    if (!cluster_offset) {
        /* nothing to do */
    } else if (cluster_offset & QCOW_OFLAG_COMPRESSED) {
        /* nothing to do */
    } else {
        if (s->crypt_method) {
            encrypt_sectors(s, acb->sector_num, acb->buf, acb->buf,
                            n, 0,
                            &s->aes_decrypt_key);
        }
    }

    acb->nb_sectors -= n;
    acb->sector_num += n;
    acb->buf += n * 512;

    goto redo;
}

@@ -633,16 +631,12 @@ static int qcow_aio_write_cb(QCowAIOCB *acb)
    int index_in_cluster;
    uint64_t cluster_offset;
    const uint8_t *src_buf;
    int ret, n = 0;
    int ret, n;
    uint8_t *cluster_data = NULL;
    struct iovec hd_iov;
    QEMUIOVector hd_qiov;

redo:
    acb->nb_sectors -= n;
    acb->sector_num += n;
    acb->buf += n * 512;

    if (acb->nb_sectors == 0) {
        /* request completed */
        return 0;
@@ -685,6 +679,11 @@ redo:
    if (ret < 0) {
        return ret;
    }

    acb->nb_sectors -= n;
    acb->sector_num += n;
    acb->buf += n * 512;

    goto redo;
}