Revision 80ee15a6 block/qcow2-cluster.c

b/block/qcow2-cluster.c
264 264
        return 0;
265 265

  
266 266
    for (i = start; i < start + nb_clusters; i++)
267
        if (offset + i * cluster_size != (be64_to_cpu(l2_table[i]) & ~mask))
267
        if (offset + (uint64_t) i * cluster_size != (be64_to_cpu(l2_table[i]) & ~mask))
268 268
            break;
269 269

  
270 270
	return (i - start);
......
395 395
    int *num)
396 396
{
397 397
    BDRVQcowState *s = bs->opaque;
398
    int l1_index, l2_index;
398
    unsigned int l1_index, l2_index;
399 399
    uint64_t l2_offset, *l2_table, cluster_offset;
400 400
    int l1_bits, c;
401
    int index_in_cluster, nb_available, nb_needed, nb_clusters;
401
    unsigned int index_in_cluster, nb_clusters;
402
    uint64_t nb_available, nb_needed;
402 403

  
403 404
    index_in_cluster = (offset >> 9) & (s->cluster_sectors - 1);
404 405
    nb_needed = *num + index_in_cluster;
......
409 410
     * the end of the l1 entry
410 411
     */
411 412

  
412
    nb_available = (1 << l1_bits) - (offset & ((1 << l1_bits) - 1));
413
    nb_available = (1ULL << l1_bits) - (offset & ((1ULL << l1_bits) - 1));
413 414

  
414 415
    /* compute the number of available sectors */
415 416

  
......
483 484
                             int *new_l2_index)
484 485
{
485 486
    BDRVQcowState *s = bs->opaque;
486
    int l1_index, l2_index, ret;
487
    unsigned int l1_index, l2_index;
487 488
    uint64_t l2_offset, *l2_table;
489
    int ret;
488 490

  
489 491
    /* seek the the l2 offset in the l1 table */
490 492

  
......
683 685
    BDRVQcowState *s = bs->opaque;
684 686
    int l2_index, ret;
685 687
    uint64_t l2_offset, *l2_table, cluster_offset;
686
    int nb_clusters, i = 0;
688
    unsigned int nb_clusters, i = 0;
687 689
    QCowL2Meta *old_alloc;
688 690

  
689 691
    ret = get_cluster_table(bs, offset, &l2_table, &l2_offset, &l2_index);

Also available in: Unified diff