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