Lines Matching full:super

85  * Super block version 2 is the first released version.
87 * Super block version 3 is the normal version used from RHEL 8.2 onwards.
89 * Super block versions 4 through 6 were incremental development versions and
92 * Super block version 7 is used for volumes which have been reduced in size by one chapter in
195 struct super_block_data super; member
216 static inline bool is_converted_super_block(struct super_block_data *super) in is_converted_super_block() argument
218 return super->version == 7; in is_converted_super_block()
307 return open_layout_reader(layout, region, -layout->super.start_offset, in open_region_reader()
322 return open_layout_writer(layout, region, -layout->super.start_offset, in open_region_writer()
327 struct super_block_data *super) in generate_super_block_data() argument
329 memset(super, 0, sizeof(*super)); in generate_super_block_data()
330 memcpy(super->magic_label, LAYOUT_MAGIC, MAGIC_SIZE); in generate_super_block_data()
331 create_unique_nonce_data(super->nonce_info); in generate_super_block_data()
333 super->nonce = generate_primary_nonce(super->nonce_info, in generate_super_block_data()
334 sizeof(super->nonce_info)); in generate_super_block_data()
335 super->version = SUPER_VERSION_CURRENT; in generate_super_block_data()
336 super->block_size = sls->block_size; in generate_super_block_data()
337 super->index_count = 1; in generate_super_block_data()
338 super->max_saves = sls->save_count; in generate_super_block_data()
339 super->open_chapter_blocks = sls->open_chapter_blocks; in generate_super_block_data()
340 super->page_map_blocks = sls->page_map_blocks; in generate_super_block_data()
341 super->volume_offset = 0; in generate_super_block_data()
342 super->start_offset = 0; in generate_super_block_data()
352 u64 primary_nonce = layout->super.nonce; in define_sub_index_nonce()
407 generate_super_block_data(sls, &layout->super); in initialize_layout()
609 reset_index_save_layout(isl, layout->super.page_map_blocks); in invalidate_old_save()
619 for (i = 0; i < layout->super.max_saves; i++) { in discard_index_state_data()
640 u16 region_count = 5 + layout->super.max_saves; in make_layout_region_table()
657 for (i = 0; i < layout->super.max_saves; i++) in make_layout_region_table()
662 if (is_converted_super_block(&layout->super)) { in make_layout_region_table()
666 sizeof(layout->super.volume_offset) - in make_layout_region_table()
667 sizeof(layout->super.start_offset)); in make_layout_region_table()
698 memcpy(buffer + offset, &layout->super.magic_label, MAGIC_SIZE); in write_layout_header()
700 memcpy(buffer + offset, &layout->super.nonce_info, NONCE_INFO_SIZE); in write_layout_header()
702 encode_u64_le(buffer, &offset, layout->super.nonce); in write_layout_header()
703 encode_u32_le(buffer, &offset, layout->super.version); in write_layout_header()
704 encode_u32_le(buffer, &offset, layout->super.block_size); in write_layout_header()
705 encode_u16_le(buffer, &offset, layout->super.index_count); in write_layout_header()
706 encode_u16_le(buffer, &offset, layout->super.max_saves); in write_layout_header()
708 encode_u64_le(buffer, &offset, layout->super.open_chapter_blocks); in write_layout_header()
709 encode_u64_le(buffer, &offset, layout->super.page_map_blocks); in write_layout_header()
711 if (is_converted_super_block(&layout->super)) { in write_layout_header()
712 encode_u64_le(buffer, &offset, layout->super.volume_offset); in write_layout_header()
713 encode_u64_le(buffer, &offset, layout->super.start_offset); in write_layout_header()
735 result = uds_write_config_contents(writer, config, layout->super.version); in write_uds_index_config()
841 for (i = 0; i < layout->super.max_saves; i++) { in find_latest_uds_index_save_slot()
943 for (i = 0; i < layout->super.max_saves; i++) { in select_oldest_index_save_layout()
956 struct super_block_data *super, in instantiate_index_save_layout() argument
980 .block_count = super->page_map_blocks, in instantiate_index_save_layout()
984 next_block += super->page_map_blocks; in instantiate_index_save_layout()
987 super->page_map_blocks - in instantiate_index_save_layout()
988 super->open_chapter_blocks); in instantiate_index_save_layout()
1004 .block_count = super->open_chapter_blocks, in instantiate_index_save_layout()
1009 next_block += super->open_chapter_blocks; in instantiate_index_save_layout()
1031 instantiate_index_save_layout(isl, &layout->super, layout->index.nonce, in setup_uds_index_save_slot()
1176 struct super_block_data *super = &layout->super; in read_super_block_data() local
1180 result = vdo_allocate(saved_size, u8, "super block data", &buffer); in read_super_block_data()
1190 memcpy(&super->magic_label, buffer, MAGIC_SIZE); in read_super_block_data()
1192 memcpy(&super->nonce_info, buffer + offset, NONCE_INFO_SIZE); in read_super_block_data()
1194 decode_u64_le(buffer, &offset, &super->nonce); in read_super_block_data()
1195 decode_u32_le(buffer, &offset, &super->version); in read_super_block_data()
1196 decode_u32_le(buffer, &offset, &super->block_size); in read_super_block_data()
1197 decode_u16_le(buffer, &offset, &super->index_count); in read_super_block_data()
1198 decode_u16_le(buffer, &offset, &super->max_saves); in read_super_block_data()
1200 decode_u64_le(buffer, &offset, &super->open_chapter_blocks); in read_super_block_data()
1201 decode_u64_le(buffer, &offset, &super->page_map_blocks); in read_super_block_data()
1203 if (is_converted_super_block(super)) { in read_super_block_data()
1204 decode_u64_le(buffer, &offset, &super->volume_offset); in read_super_block_data()
1205 decode_u64_le(buffer, &offset, &super->start_offset); in read_super_block_data()
1207 super->volume_offset = 0; in read_super_block_data()
1208 super->start_offset = 0; in read_super_block_data()
1213 if (memcmp(super->magic_label, LAYOUT_MAGIC, MAGIC_SIZE) != 0) in read_super_block_data()
1217 if ((super->version < SUPER_VERSION_MINIMUM) || in read_super_block_data()
1218 (super->version == 4) || (super->version == 5) || (super->version == 6) || in read_super_block_data()
1219 (super->version > SUPER_VERSION_MAXIMUM)) { in read_super_block_data()
1222 super->version); in read_super_block_data()
1225 if (super->volume_offset < super->start_offset) { in read_super_block_data()
1228 (unsigned long long) super->start_offset, in read_super_block_data()
1229 (unsigned long long) super->volume_offset); in read_super_block_data()
1233 if (super->index_count != 1) { in read_super_block_data()
1236 super->index_count); in read_super_block_data()
1239 if (generate_primary_nonce(super->nonce_info, sizeof(super->nonce_info)) != super->nonce) { in read_super_block_data()
1287 next_block += sil->volume.block_count + layout->super.volume_offset; in verify_sub_index()
1289 for (i = 0; i < layout->super.max_saves; i++) { in verify_sub_index()
1299 next_block -= layout->super.volume_offset; in verify_sub_index()
1314 result = vdo_allocate(layout->super.max_saves, struct index_save_layout, in reconstitute_layout()
1340 result = verify_region(&layout->seal, next_block + layout->super.volume_offset, in reconstitute_layout()
1358 struct super_block_data *super = &layout->super; in load_super_block() local
1376 if (super->block_size != block_size) { in load_super_block()
1380 super->block_size, block_size); in load_super_block()
1383 first_block -= (super->volume_offset - super->start_offset); in load_super_block()
1571 for (j = 0; j < layout->super.max_saves; j++) { in load_sub_index_regions()
1601 offset = layout->super.volume_offset - layout->super.start_offset; in verify_uds_index_config()
1730 layout->super.volume_offset - in uds_open_volume_bufio()
1731 layout->super.start_offset); in uds_open_volume_bufio()