Lines Matching refs:cluster_size

147     clusterlen = size_to_clusters(s, headerlen) * s->cluster_size;  in qcow2_crypto_hdr_init_func()
227 if (offset > s->cluster_size) in qcow2_read_extensions()
312 if ((s->crypto_header.offset % s->cluster_size) != 0) { in qcow2_read_extensions()
315 s->crypto_header.offset, s->cluster_size); in qcow2_read_extensions()
890 int min_refcount_cache = MIN_REFCOUNT_CACHE_SIZE * s->cluster_size; in read_cache_sizes()
892 uint64_t max_l2_entries = DIV_ROUND_UP(virtual_disk_size, s->cluster_size); in read_cache_sizes()
896 s->cluster_size); in read_cache_sizes()
910 opts, QCOW2_OPT_L2_CACHE_ENTRY_SIZE, s->cluster_size); in read_cache_sizes()
955 *l2_cache_entry_size = MIN(s->cluster_size, 4096); in read_cache_sizes()
962 *l2_cache_entry_size > s->cluster_size || in read_cache_sizes()
966 1 << MIN_CLUSTER_BITS, s->cluster_size); in read_cache_sizes()
1025 refcount_cache_size /= s->cluster_size; in qcow2_update_options_prepare()
1057 s->cluster_size); in qcow2_update_options_prepare()
1374 s->cluster_size = 1 << s->cluster_bits; in qcow2_do_open()
1398 if (header.header_length > s->cluster_size) { in qcow2_do_open()
1417 if (header.backing_file_offset > s->cluster_size) { in qcow2_do_open()
1476 s->subcluster_size = s->cluster_size / s->subclusters_per_cluster; in qcow2_do_open()
1547 s->cluster_size, QCOW_MAX_REFTABLE_SIZE, in qcow2_do_open()
1721 if (len > MIN(1023, s->cluster_size - header.backing_file_offset) || in qcow2_do_open()
1970 bs->bl.pdiscard_alignment = s->cluster_size; in qcow2_refresh_limits()
2227 assert(bytes <= QCOW_MAX_CRYPT_CLUSTERS * s->cluster_size); in qcow2_co_preadv_encrypted()
2389 QCOW_MAX_CRYPT_CLUSTERS * s->cluster_size); in qcow2_co_preadv_part()
2590 assert(bytes <= QCOW_MAX_CRYPT_CLUSTERS * s->cluster_size); in qcow2_co_pwritev_task()
2686 QCOW_MAX_CRYPT_CLUSTERS * s->cluster_size in qcow2_co_pwritev_part()
2912 size_t buflen = s->cluster_size; in qcow2_update_header()
3043 if (s->qcow_version >= 3 && s->cluster_size > 4096) { in qcow2_update_header()
3152 ret = bdrv_pwrite(bs->file, 0, s->cluster_size, header, 0); in qcow2_update_header()
3259 cur_bytes = MIN(bytes, QEMU_ALIGN_DOWN(INT_MAX, s->cluster_size)); in preallocate_co()
3322 int64_t qcow2_refcount_metadata_size(int64_t clusters, size_t cluster_size, in qcow2_refcount_metadata_size() argument
3335 int64_t blocks_per_table_cluster = cluster_size / REFTABLE_ENTRY_SIZE; in qcow2_refcount_metadata_size()
3336 int64_t refcounts_per_block = cluster_size * 8 / (1 << refcount_order); in qcow2_refcount_metadata_size()
3359 return (blocks + table) * cluster_size; in qcow2_refcount_metadata_size()
3373 size_t cluster_size, in qcow2_calc_prealloc_size() argument
3379 int64_t aligned_total_size = ROUND_UP(total_size, cluster_size); in qcow2_calc_prealloc_size()
3383 meta_size += cluster_size; in qcow2_calc_prealloc_size()
3386 nl2e = aligned_total_size / cluster_size; in qcow2_calc_prealloc_size()
3387 nl2e = ROUND_UP(nl2e, cluster_size / l2e_size); in qcow2_calc_prealloc_size()
3391 nl1e = nl2e * l2e_size / cluster_size; in qcow2_calc_prealloc_size()
3392 nl1e = ROUND_UP(nl1e, cluster_size / L1E_SIZE); in qcow2_calc_prealloc_size()
3397 (meta_size + aligned_total_size) / cluster_size, in qcow2_calc_prealloc_size()
3398 cluster_size, refcount_order, false, NULL); in qcow2_calc_prealloc_size()
3403 static bool validate_cluster_size(size_t cluster_size, bool extended_l2, in validate_cluster_size() argument
3406 int cluster_bits = ctz32(cluster_size); in validate_cluster_size()
3408 (1 << cluster_bits) != cluster_size) in validate_cluster_size()
3418 if (cluster_size < min_cluster_size) { in validate_cluster_size()
3431 size_t cluster_size; in qcow2_opt_get_cluster_size_del() local
3433 cluster_size = qemu_opt_get_size_del(opts, BLOCK_OPT_CLUSTER_SIZE, in qcow2_opt_get_cluster_size_del()
3435 if (!validate_cluster_size(cluster_size, extended_l2, errp)) { in qcow2_opt_get_cluster_size_del()
3438 return cluster_size; in qcow2_opt_get_cluster_size_del()
3505 size_t cluster_size; in qcow2_co_create() local
3544 cluster_size = qcow2_opts->cluster_size; in qcow2_co_create()
3546 cluster_size = DEFAULT_CLUSTER_SIZE; in qcow2_co_create()
3562 if (!validate_cluster_size(cluster_size, qcow2_opts->extended_l2, errp)) { in qcow2_co_create()
3700 header = g_malloc0(cluster_size); in qcow2_co_create()
3704 .cluster_bits = cpu_to_be32(ctz32(cluster_size)), in qcow2_co_create()
3708 .refcount_table_offset = cpu_to_be64(cluster_size), in qcow2_co_create()
3741 ret = blk_co_pwrite(blk, 0, cluster_size, header, 0); in qcow2_co_create()
3749 refcount_table = g_malloc0(2 * cluster_size); in qcow2_co_create()
3750 refcount_table[0] = cpu_to_be64(2 * cluster_size); in qcow2_co_create()
3751 ret = blk_co_pwrite(blk, cluster_size, 2 * cluster_size, refcount_table, 0); in qcow2_co_create()
3782 ret = qcow2_alloc_clusters(blk_bs(blk), 3 * cluster_size); in qcow2_co_create()
4114 if (!QEMU_IS_ALIGNED(offset | bytes, s->cluster_size)) { in qcow2_co_pdiscard()
4115 assert(bytes < s->cluster_size); in qcow2_co_pdiscard()
4118 if (!QEMU_IS_ALIGNED(offset, s->cluster_size) || in qcow2_co_pdiscard()
4336 ret = qcow2_cluster_discard(bs, ROUND_UP(offset, s->cluster_size), in qcow2_co_truncate()
4338 s->cluster_size), in qcow2_co_truncate()
4373 if ((last_cluster + 1) * s->cluster_size < old_file_size) { in qcow2_co_truncate()
4383 bdrv_co_truncate(bs->file, (last_cluster + 1) * s->cluster_size, in qcow2_co_truncate()
4462 old_file_size = (last_cluster + 1) * s->cluster_size; in qcow2_co_truncate()
4464 old_file_size = ROUND_UP(old_file_size, s->cluster_size); in qcow2_co_truncate()
4467 nb_new_data_clusters = (ROUND_UP(offset, s->cluster_size) - in qcow2_co_truncate()
4481 s->cluster_size / l2_entry_size(s)); in qcow2_co_truncate()
4510 nb_new_data_clusters * s->cluster_size; in qcow2_co_truncate()
4535 nb_new_data_clusters * s->cluster_size, in qcow2_co_truncate()
4570 nb_new_data_clusters * s->cluster_size, in qcow2_co_truncate()
4575 guest_offset += nb_clusters * s->cluster_size; in qcow2_co_truncate()
4576 host_offset += nb_clusters * s->cluster_size; in qcow2_co_truncate()
4669 assert(bytes == s->cluster_size || (bytes < s->cluster_size && in qcow2_co_pwritev_compressed_task()
4672 buf = qemu_blockalign(bs, s->cluster_size); in qcow2_co_pwritev_compressed_task()
4673 if (bytes < s->cluster_size) { in qcow2_co_pwritev_compressed_task()
4675 memset(buf + bytes, 0, s->cluster_size - bytes); in qcow2_co_pwritev_compressed_task()
4679 out_buf = g_malloc(s->cluster_size); in qcow2_co_pwritev_compressed_task()
4681 out_len = qcow2_co_compress(bs, out_buf, s->cluster_size - 1, in qcow2_co_pwritev_compressed_task()
4682 buf, s->cluster_size); in qcow2_co_pwritev_compressed_task()
4778 uint64_t chunk_size = MIN(bytes, s->cluster_size); in qcow2_co_pwritev_compressed_part()
4826 out_buf = qemu_blockalign(bs, s->cluster_size); in qcow2_co_preadv_compressed()
4834 if (qcow2_co_decompress(bs, out_buf, s->cluster_size, buf, csize) < 0) { in qcow2_co_preadv_compressed()
4880 l1_clusters = DIV_ROUND_UP(s->l1_size, s->cluster_size / L1E_SIZE); in make_completely_empty()
4887 l1_clusters * s->cluster_size, 0); in make_completely_empty()
4900 ret = bdrv_pwrite_zeroes(bs->file, s->cluster_size, in make_completely_empty()
4901 (2 + l1_clusters) * s->cluster_size, 0); in make_completely_empty()
4916 l1_ofs_rt_ofs_cls.l1_offset = cpu_to_be64(3 * s->cluster_size); in make_completely_empty()
4917 l1_ofs_rt_ofs_cls.reftable_offset = cpu_to_be64(s->cluster_size); in make_completely_empty()
4925 s->l1_table_offset = 3 * s->cluster_size; in make_completely_empty()
4927 new_reftable = g_try_new0(uint64_t, s->cluster_size / REFTABLE_ENTRY_SIZE); in make_completely_empty()
4933 s->refcount_table_offset = s->cluster_size; in make_completely_empty()
4934 s->refcount_table_size = s->cluster_size / REFTABLE_ENTRY_SIZE; in make_completely_empty()
4950 rt_entry = cpu_to_be64(2 * s->cluster_size); in make_completely_empty()
4951 ret = bdrv_pwrite_sync(bs->file, s->cluster_size, sizeof(rt_entry), in make_completely_empty()
4956 s->refcount_table[0] = 2 * s->cluster_size; in make_completely_empty()
4960 offset = qcow2_alloc_clusters(bs, 3 * s->cluster_size + l1_size2); in make_completely_empty()
4976 ret = bdrv_truncate(bs->file, (3 + l1_clusters) * s->cluster_size, false, in make_completely_empty()
5003 int step = QEMU_ALIGN_DOWN(INT_MAX, s->cluster_size); in qcow2_make_empty()
5006 l1_clusters = DIV_ROUND_UP(s->l1_size, s->cluster_size / L1E_SIZE); in qcow2_make_empty()
5065 size_t cluster_size; in qcow2_measure() local
5077 cluster_size = qcow2_opt_get_cluster_size_del(opts, extended_l2, in qcow2_measure()
5127 luks_payload_size = ROUND_UP(headerlen, cluster_size); in qcow2_measure()
5131 virtual_size = ROUND_UP(virtual_size, cluster_size); in qcow2_measure()
5135 l2_tables = DIV_ROUND_UP(virtual_size / cluster_size, in qcow2_measure()
5136 cluster_size / l2e_size); in qcow2_measure()
5152 virtual_size = ROUND_UP(ssize, cluster_size); in qcow2_measure()
5182 pnum = ROUND_UP(offset + pnum, cluster_size) - offset; in qcow2_measure()
5185 required += offset % cluster_size + pnum; in qcow2_measure()
5200 qcow2_calc_prealloc_size(virtual_size, cluster_size, in qcow2_measure()
5214 cluster_size); in qcow2_measure()
5227 bdi->cluster_size = s->cluster_size; in qcow2_co_get_info()