int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset,

                                  int64_t size)

{

    int ret = qcow2_check_metadata_overlap(bs, ign, offset, size);



    if (ret < 0) {

        return ret;

    } else if (ret > 0) {

        int metadata_ol_bitnr = ffs(ret) - 1;

        assert(metadata_ol_bitnr < QCOW2_OL_MAX_BITNR);



        qcow2_signal_corruption(bs, true, offset, size, "Preventing invalid "

                                "write on metadata (overlaps with %s)",

                                metadata_ol_names[metadata_ol_bitnr]);

        return -EIO;

    }



    return 0;

}

int qcow2_pre_write_overlap_check(BlockDriverState *bs, int ign, int64_t offset,

                                  int64_t size)

{

    int ret = qcow2_check_metadata_overlap(bs, ign, offset, size);



    if (ret < 0) {

        return ret;

    } else if (ret > 0) {

        int metadata_ol_bitnr = ffs(ret) - 1;

        assert(metadata_ol_bitnr < QCOW2_OL_MAX_BITNR);



        qcow2_signal_corruption(bs, true, offset, size, "Preventing invalid "

                                "write on metadata (overlaps with %s)",

                                metadata_ol_names[metadata_ol_bitnr]);

        return -EIO;

    }



    return 0;

}

int FUNC_0(BlockDriverState *VAR_0, int VAR_1, int64_t VAR_2,

                                  int64_t VAR_3)

{

    int VAR_4 = qcow2_check_metadata_overlap(VAR_0, VAR_1, VAR_2, VAR_3);



    if (VAR_4 < 0) {

        return VAR_4;

    } else if (VAR_4 > 0) {

        int VAR_5 = ffs(VAR_4) - 1;

        assert(VAR_5 < QCOW2_OL_MAX_BITNR);



        qcow2_signal_corruption(VAR_0, true, VAR_2, VAR_3, "Preventing invalid "

                                "write on metadata (overlaps with %s)",

                                metadata_ol_names[VAR_5]);

        return -EIO;

    }



    return 0;

}

int FUNC_0(BlockDriverState *VAR_0, int VAR_1, int64_t VAR_2,
int64_t VAR_3)
{ int VAR_4 = qcow2_check_metadata_overlap(VAR_0, VAR_1, VAR_2, VAR_3); if (VAR_4 < 0) { return VAR_4; } else if (VAR_4 > 0) { int VAR_5 = ffs(VAR_4) - 1; assert(VAR_5 < QCOW2_OL_MAX_BITNR); qcow2_signal_corruption(VAR_0, true, VAR_2, VAR_3, "Preventing invalid "
"write on metadata (overlaps with %s)",
metadata_ol_names[VAR_5]); return -EIO; } return 0; }