static int64_t alloc_clusters_noref(BlockDriverState *bs, uint64_t size)

{

    BDRVQcowState *s = bs->opaque;

    uint64_t i, nb_clusters;

    int refcount;



    nb_clusters = size_to_clusters(s, size);

retry:

    for(i = 0; i < nb_clusters; i++) {

        uint64_t next_cluster_index = s->free_cluster_index++;

        refcount = get_refcount(bs, next_cluster_index);



        if (refcount < 0) {

            return refcount;

        } else if (refcount != 0) {

            goto retry;

        }

    }



    /* Make sure that all offsets in the "allocated" range are representable

     * in an int64_t */

    if (s->free_cluster_index - 1 > (INT64_MAX >> s->cluster_bits)) {

        return -EFBIG;

    }



#ifdef DEBUG_ALLOC2

    fprintf(stderr, "alloc_clusters: size=%" PRId64 " -> %" PRId64 "\n",

            size,

            (s->free_cluster_index - nb_clusters) << s->cluster_bits);

#endif

    return (s->free_cluster_index - nb_clusters) << s->cluster_bits;

}

static int64_t alloc_clusters_noref(BlockDriverState *bs, uint64_t size)

{

    BDRVQcowState *s = bs->opaque;

    uint64_t i, nb_clusters;

    int refcount;



    nb_clusters = size_to_clusters(s, size);

retry:

    for(i = 0; i < nb_clusters; i++) {

        uint64_t next_cluster_index = s->free_cluster_index++;

        refcount = get_refcount(bs, next_cluster_index);



        if (refcount < 0) {

            return refcount;

        } else if (refcount != 0) {

            goto retry;

        }

    }



    



    if (s->free_cluster_index - 1 > (INT64_MAX >> s->cluster_bits)) {

        return -EFBIG;

    }



#ifdef DEBUG_ALLOC2

    fprintf(stderr, "alloc_clusters: size=%" PRId64 " -> %" PRId64 "\n",

            size,

            (s->free_cluster_index - nb_clusters) << s->cluster_bits);

#endif

    return (s->free_cluster_index - nb_clusters) << s->cluster_bits;

}

    if (s->free_cluster_index - 1 > (INT64_MAX >> s->cluster_bits)) {
static int64_t FUNC_0(BlockDriverState *bs, uint64_t size)

{

    BDRVQcowState *s = bs->opaque;

    uint64_t i, nb_clusters;

    int VAR_0;



    nb_clusters = size_to_clusters(s, size);

retry:

    for(i = 0; i < nb_clusters; i++) {

        uint64_t next_cluster_index = s->free_cluster_index++;

        VAR_0 = get_refcount(bs, next_cluster_index);



        if (VAR_0 < 0) {

            return VAR_0;

        } else if (VAR_0 != 0) {

            goto retry;

        }

    }



    



    if (s->free_cluster_index - 1 > (INT64_MAX >> s->cluster_bits)) {

        return -EFBIG;

    }



#ifdef DEBUG_ALLOC2

    fprintf(stderr, "alloc_clusters: size=%" PRId64 " -> %" PRId64 "\n",

            size,

            (s->free_cluster_index - nb_clusters) << s->cluster_bits);

#endif

    return (s->free_cluster_index - nb_clusters) << s->cluster_bits;

}

static int64_t FUNC_0(BlockDriverState *bs, uint64_t size)
{ BDRVQcowState *s = bs->opaque; uint64_t i, nb_clusters; int VAR_0; nb_clusters = size_to_clusters(s, size); retry:
for(i = 0; i < nb_clusters; i++) { uint64_t next_cluster_index = s->free_cluster_index++; VAR_0 = get_refcount(bs, next_cluster_index); if (VAR_0 < 0) { return VAR_0; } else if (VAR_0 != 0) { goto retry; } } if (s->free_cluster_index - 1 > (INT64_MAX >> s->cluster_bits)) { return -EFBIG; } #ifdef DEBUG_ALLOC2
fprintf(stderr, "alloc_clusters: size=%" PRId64 " -> %" PRId64 "\n",
size,
(s->free_cluster_index - nb_clusters) << s->cluster_bits); #endif
return (s->free_cluster_index - nb_clusters) << s->cluster_bits; }