Lines Matching full:super
86 * Super block version 2 is the first released version.
88 * Super block version 3 is the normal version used from RHEL 8.2 onwards.
90 * Super block versions 4 through 6 were incremental development versions and
93 * Super block version 7 is used for volumes which have been reduced in size by one chapter in
194 struct super_block_data super; member
215 static inline bool is_converted_super_block(struct super_block_data *super) in is_converted_super_block() argument
217 return super->version == 7; in is_converted_super_block()
306 return open_layout_reader(layout, region, -layout->super.start_offset, in open_region_reader()
321 return open_layout_writer(layout, region, -layout->super.start_offset, in open_region_writer()
326 struct super_block_data *super) in generate_super_block_data() argument
328 memset(super, 0, sizeof(*super)); in generate_super_block_data()
329 memcpy(super->magic_label, LAYOUT_MAGIC, MAGIC_SIZE); in generate_super_block_data()
330 create_unique_nonce_data(super->nonce_info); in generate_super_block_data()
332 super->nonce = generate_primary_nonce(super->nonce_info, in generate_super_block_data()
333 sizeof(super->nonce_info)); in generate_super_block_data()
334 super->version = SUPER_VERSION_CURRENT; in generate_super_block_data()
335 super->block_size = sls->block_size; in generate_super_block_data()
336 super->index_count = 1; in generate_super_block_data()
337 super->max_saves = sls->save_count; in generate_super_block_data()
338 super->open_chapter_blocks = sls->open_chapter_blocks; in generate_super_block_data()
339 super->page_map_blocks = sls->page_map_blocks; in generate_super_block_data()
340 super->volume_offset = 0; in generate_super_block_data()
341 super->start_offset = 0; in generate_super_block_data()
351 u64 primary_nonce = layout->super.nonce; in define_sub_index_nonce()
406 generate_super_block_data(sls, &layout->super); in initialize_layout()
608 reset_index_save_layout(isl, layout->super.page_map_blocks); in invalidate_old_save()
618 for (i = 0; i < layout->super.max_saves; i++) { in discard_index_state_data()
639 u16 region_count = 5 + layout->super.max_saves; in make_layout_region_table()
656 for (i = 0; i < layout->super.max_saves; i++) in make_layout_region_table()
661 if (is_converted_super_block(&layout->super)) { in make_layout_region_table()
665 sizeof(layout->super.volume_offset) - in make_layout_region_table()
666 sizeof(layout->super.start_offset)); in make_layout_region_table()
697 memcpy(buffer + offset, &layout->super.magic_label, MAGIC_SIZE); in write_layout_header()
699 memcpy(buffer + offset, &layout->super.nonce_info, NONCE_INFO_SIZE); in write_layout_header()
701 encode_u64_le(buffer, &offset, layout->super.nonce); in write_layout_header()
702 encode_u32_le(buffer, &offset, layout->super.version); in write_layout_header()
703 encode_u32_le(buffer, &offset, layout->super.block_size); in write_layout_header()
704 encode_u16_le(buffer, &offset, layout->super.index_count); in write_layout_header()
705 encode_u16_le(buffer, &offset, layout->super.max_saves); in write_layout_header()
707 encode_u64_le(buffer, &offset, layout->super.open_chapter_blocks); in write_layout_header()
708 encode_u64_le(buffer, &offset, layout->super.page_map_blocks); in write_layout_header()
710 if (is_converted_super_block(&layout->super)) { in write_layout_header()
711 encode_u64_le(buffer, &offset, layout->super.volume_offset); in write_layout_header()
712 encode_u64_le(buffer, &offset, layout->super.start_offset); in write_layout_header()
734 result = uds_write_config_contents(writer, config, layout->super.version); in write_uds_index_config()
840 for (i = 0; i < layout->super.max_saves; i++) { in find_latest_uds_index_save_slot()
942 for (i = 0; i < layout->super.max_saves; i++) { in select_oldest_index_save_layout()
955 struct super_block_data *super, in instantiate_index_save_layout() argument
979 .block_count = super->page_map_blocks, in instantiate_index_save_layout()
983 next_block += super->page_map_blocks; in instantiate_index_save_layout()
986 super->page_map_blocks - in instantiate_index_save_layout()
987 super->open_chapter_blocks); in instantiate_index_save_layout()
1003 .block_count = super->open_chapter_blocks, in instantiate_index_save_layout()
1008 next_block += super->open_chapter_blocks; in instantiate_index_save_layout()
1030 instantiate_index_save_layout(isl, &layout->super, layout->index.nonce, in setup_uds_index_save_slot()
1175 struct super_block_data *super = &layout->super; in read_super_block_data() local
1179 result = vdo_allocate(saved_size, u8, "super block data", &buffer); in read_super_block_data()
1189 memcpy(&super->magic_label, buffer, MAGIC_SIZE); in read_super_block_data()
1191 memcpy(&super->nonce_info, buffer + offset, NONCE_INFO_SIZE); in read_super_block_data()
1193 decode_u64_le(buffer, &offset, &super->nonce); in read_super_block_data()
1194 decode_u32_le(buffer, &offset, &super->version); in read_super_block_data()
1195 decode_u32_le(buffer, &offset, &super->block_size); in read_super_block_data()
1196 decode_u16_le(buffer, &offset, &super->index_count); in read_super_block_data()
1197 decode_u16_le(buffer, &offset, &super->max_saves); in read_super_block_data()
1199 decode_u64_le(buffer, &offset, &super->open_chapter_blocks); in read_super_block_data()
1200 decode_u64_le(buffer, &offset, &super->page_map_blocks); in read_super_block_data()
1202 if (is_converted_super_block(super)) { in read_super_block_data()
1203 decode_u64_le(buffer, &offset, &super->volume_offset); in read_super_block_data()
1204 decode_u64_le(buffer, &offset, &super->start_offset); in read_super_block_data()
1206 super->volume_offset = 0; in read_super_block_data()
1207 super->start_offset = 0; in read_super_block_data()
1212 if (memcmp(super->magic_label, LAYOUT_MAGIC, MAGIC_SIZE) != 0) in read_super_block_data()
1216 if ((super->version < SUPER_VERSION_MINIMUM) || in read_super_block_data()
1217 (super->version == 4) || (super->version == 5) || (super->version == 6) || in read_super_block_data()
1218 (super->version > SUPER_VERSION_MAXIMUM)) { in read_super_block_data()
1221 super->version); in read_super_block_data()
1224 if (super->volume_offset < super->start_offset) { in read_super_block_data()
1227 (unsigned long long) super->start_offset, in read_super_block_data()
1228 (unsigned long long) super->volume_offset); in read_super_block_data()
1232 if (super->index_count != 1) { in read_super_block_data()
1235 super->index_count); in read_super_block_data()
1238 if (generate_primary_nonce(super->nonce_info, sizeof(super->nonce_info)) != super->nonce) { in read_super_block_data()
1286 next_block += sil->volume.block_count + layout->super.volume_offset; in verify_sub_index()
1288 for (i = 0; i < layout->super.max_saves; i++) { in verify_sub_index()
1298 next_block -= layout->super.volume_offset; in verify_sub_index()
1313 result = vdo_allocate(layout->super.max_saves, struct index_save_layout, in reconstitute_layout()
1339 result = verify_region(&layout->seal, next_block + layout->super.volume_offset, in reconstitute_layout()
1357 struct super_block_data *super = &layout->super; in load_super_block() local
1375 if (super->block_size != block_size) { in load_super_block()
1379 super->block_size, block_size); in load_super_block()
1382 first_block -= (super->volume_offset - super->start_offset); in load_super_block()
1570 for (j = 0; j < layout->super.max_saves; j++) { in load_sub_index_regions()
1600 offset = layout->super.volume_offset - layout->super.start_offset; in verify_uds_index_config()
1729 layout->super.volume_offset - in uds_open_volume_bufio()
1730 layout->super.start_offset); in uds_open_volume_bufio()