static int
vhd_util_stream_copy_block(struct vhd_decrypt_context *ctx, uint32_t blk)
{
+ int err, i;
off64_t off;
char *bm, *data;
- int err, i, empty;
vhd_context_t *src, *dst;
bm = NULL;
data = NULL;
src = ctx->src_vhd;
dst = ctx->dst_vhd;
- empty = 1;
if (src->bat.bat[blk] == DD_BLK_UNUSED) {
if (dst->bat.bat[blk] == DD_BLK_UNUSED)
cnt++;
if (copy) {
- empty = 0;
err = vhd_util_pread_data(ctx->src_raw, buf,
vhd_sectors_to_bytes(cnt),
vhd_sectors_to_bytes(pos));
i += cnt;
}
- if (!empty) {
- err = vhd_write_bitmap(dst, blk, bm);
- if (err) {
- ERR("writing bitmap 0x%x: %d\n", blk, err);
- goto out;
- }
+ err = vhd_write_bitmap(dst, blk, bm);
+ if (err) {
+ ERR("writing bitmap 0x%x: %d\n", blk, err);
+ goto out;
+ }
- err = vhd_write_block(dst, blk, data);
- if (err) {
- ERR("writing data 0x%x: %d\n", blk, err);
- goto out;
- }
+ err = vhd_write_block(dst, blk, data);
+ if (err) {
+ ERR("writing data 0x%x: %d\n", blk, err);
+ goto out;
}
out: