Revision 4a1d5e1f block/vmdk.c

b/block/vmdk.c
1289 1289
    return ret;
1290 1290
}
1291 1291

  
1292
static int64_t vmdk_get_allocated_file_size(BlockDriverState *bs)
1293
{
1294
    int i;
1295
    int64_t ret = 0;
1296
    int64_t r;
1297
    BDRVVmdkState *s = bs->opaque;
1298

  
1299
    ret = bdrv_get_allocated_file_size(bs->file);
1300
    if (ret < 0) {
1301
        return ret;
1302
    }
1303
    for (i = 0; i < s->num_extents; i++) {
1304
        if (s->extents[i].file == bs->file) {
1305
            continue;
1306
        }
1307
        r = bdrv_get_allocated_file_size(s->extents[i].file);
1308
        if (r < 0) {
1309
            return r;
1310
        }
1311
        ret += r;
1312
    }
1313
    return ret;
1314
}
1292 1315

  
1293 1316
static QEMUOptionParameter vmdk_create_options[] = {
1294 1317
    {
......
1327 1350
    .bdrv_create    = vmdk_create,
1328 1351
    .bdrv_flush     = vmdk_flush,
1329 1352
    .bdrv_is_allocated  = vmdk_is_allocated,
1353
    .bdrv_get_allocated_file_size  = vmdk_get_allocated_file_size,
1330 1354

  
1331 1355
    .create_options = vmdk_create_options,
1332 1356
};

Also available in: Unified diff