Lines Matching refs:disk_super
155 struct cache_disk_superblock *disk_super = dm_block_data(b); in sb_prepare_for_write() local
157 disk_super->blocknr = cpu_to_le64(dm_block_location(b)); in sb_prepare_for_write()
158 disk_super->csum = cpu_to_le32(dm_bm_checksum(&disk_super->flags, in sb_prepare_for_write()
163 static int check_metadata_version(struct cache_disk_superblock *disk_super) in check_metadata_version() argument
165 uint32_t metadata_version = le32_to_cpu(disk_super->version); in check_metadata_version()
179 struct cache_disk_superblock *disk_super = dm_block_data(b); in sb_check() local
182 if (dm_block_location(b) != le64_to_cpu(disk_super->blocknr)) { in sb_check()
184 le64_to_cpu(disk_super->blocknr), in sb_check()
189 if (le64_to_cpu(disk_super->magic) != CACHE_SUPERBLOCK_MAGIC) { in sb_check()
191 le64_to_cpu(disk_super->magic), in sb_check()
196 csum_le = cpu_to_le32(dm_bm_checksum(&disk_super->flags, in sb_check()
199 if (csum_le != disk_super->csum) { in sb_check()
201 le32_to_cpu(csum_le), le32_to_cpu(disk_super->csum)); in sb_check()
205 return check_metadata_version(disk_super); in sb_check()
299 struct cache_disk_superblock *disk_super) in __copy_sm_root() argument
301 memcpy(&disk_super->metadata_space_map_root, in __copy_sm_root()
310 struct cache_disk_superblock *disk_super; in __write_initial_superblock() local
333 disk_super = dm_block_data(sblock); in __write_initial_superblock()
334 disk_super->flags = 0; in __write_initial_superblock()
335 memset(disk_super->uuid, 0, sizeof(disk_super->uuid)); in __write_initial_superblock()
336 disk_super->magic = cpu_to_le64(CACHE_SUPERBLOCK_MAGIC); in __write_initial_superblock()
337 disk_super->version = cpu_to_le32(MAX_CACHE_VERSION); in __write_initial_superblock()
338 memset(disk_super->policy_name, 0, sizeof(disk_super->policy_name)); in __write_initial_superblock()
339 memset(disk_super->policy_version, 0, sizeof(disk_super->policy_version)); in __write_initial_superblock()
340 disk_super->policy_hint_size = 0; in __write_initial_superblock()
342 __copy_sm_root(cmd, disk_super); in __write_initial_superblock()
344 disk_super->mapping_root = cpu_to_le64(cmd->root); in __write_initial_superblock()
345 disk_super->hint_root = cpu_to_le64(cmd->hint_root); in __write_initial_superblock()
346 disk_super->discard_root = cpu_to_le64(cmd->discard_root); in __write_initial_superblock()
347 disk_super->discard_block_size = cpu_to_le64(cmd->discard_block_size); in __write_initial_superblock()
348 disk_super->discard_nr_blocks = cpu_to_le64(from_dblock(cmd->discard_nr_blocks)); in __write_initial_superblock()
349 disk_super->metadata_block_size = cpu_to_le32(DM_CACHE_METADATA_BLOCK_SIZE); in __write_initial_superblock()
350 disk_super->data_block_size = cpu_to_le32(cmd->data_block_size); in __write_initial_superblock()
351 disk_super->cache_blocks = cpu_to_le32(0); in __write_initial_superblock()
353 disk_super->read_hits = cpu_to_le32(0); in __write_initial_superblock()
354 disk_super->read_misses = cpu_to_le32(0); in __write_initial_superblock()
355 disk_super->write_hits = cpu_to_le32(0); in __write_initial_superblock()
356 disk_super->write_misses = cpu_to_le32(0); in __write_initial_superblock()
401 static int __check_incompat_features(struct cache_disk_superblock *disk_super, in __check_incompat_features() argument
406 features = le32_to_cpu(disk_super->incompat_flags) & ~DM_CACHE_FEATURE_INCOMPAT_SUPP; in __check_incompat_features()
419 features = le32_to_cpu(disk_super->compat_ro_flags) & ~DM_CACHE_FEATURE_COMPAT_RO_SUPP; in __check_incompat_features()
433 struct cache_disk_superblock *disk_super; in __open_metadata() local
442 disk_super = dm_block_data(sblock); in __open_metadata()
445 if (le32_to_cpu(disk_super->data_block_size) != cmd->data_block_size) { in __open_metadata()
447 le32_to_cpu(disk_super->data_block_size), in __open_metadata()
453 r = __check_incompat_features(disk_super, cmd); in __open_metadata()
458 disk_super->metadata_space_map_root, in __open_metadata()
459 sizeof(disk_super->metadata_space_map_root), in __open_metadata()
468 sb_flags = le32_to_cpu(disk_super->flags); in __open_metadata()
523 static void update_flags(struct cache_disk_superblock *disk_super, in update_flags() argument
526 uint32_t sb_flags = mutator(le32_to_cpu(disk_super->flags)); in update_flags()
527 disk_super->flags = cpu_to_le32(sb_flags); in update_flags()
543 struct cache_disk_superblock *disk_super) in read_superblock_fields() argument
545 cmd->flags = le32_to_cpu(disk_super->flags); in read_superblock_fields()
546 cmd->root = le64_to_cpu(disk_super->mapping_root); in read_superblock_fields()
547 cmd->hint_root = le64_to_cpu(disk_super->hint_root); in read_superblock_fields()
548 cmd->discard_root = le64_to_cpu(disk_super->discard_root); in read_superblock_fields()
549 cmd->discard_block_size = le64_to_cpu(disk_super->discard_block_size); in read_superblock_fields()
550 cmd->discard_nr_blocks = to_dblock(le64_to_cpu(disk_super->discard_nr_blocks)); in read_superblock_fields()
551 cmd->data_block_size = le32_to_cpu(disk_super->data_block_size); in read_superblock_fields()
552 cmd->cache_blocks = to_cblock(le32_to_cpu(disk_super->cache_blocks)); in read_superblock_fields()
553 strncpy(cmd->policy_name, disk_super->policy_name, sizeof(cmd->policy_name)); in read_superblock_fields()
554 cmd->policy_version[0] = le32_to_cpu(disk_super->policy_version[0]); in read_superblock_fields()
555 cmd->policy_version[1] = le32_to_cpu(disk_super->policy_version[1]); in read_superblock_fields()
556 cmd->policy_version[2] = le32_to_cpu(disk_super->policy_version[2]); in read_superblock_fields()
557 cmd->policy_hint_size = le32_to_cpu(disk_super->policy_hint_size); in read_superblock_fields()
559 cmd->stats.read_hits = le32_to_cpu(disk_super->read_hits); in read_superblock_fields()
560 cmd->stats.read_misses = le32_to_cpu(disk_super->read_misses); in read_superblock_fields()
561 cmd->stats.write_hits = le32_to_cpu(disk_super->write_hits); in read_superblock_fields()
562 cmd->stats.write_misses = le32_to_cpu(disk_super->write_misses); in read_superblock_fields()
574 struct cache_disk_superblock *disk_super; in __begin_transaction_flags() local
581 disk_super = dm_block_data(sblock); in __begin_transaction_flags()
582 update_flags(disk_super, mutator); in __begin_transaction_flags()
583 read_superblock_fields(cmd, disk_super); in __begin_transaction_flags()
592 struct cache_disk_superblock *disk_super; in __begin_transaction() local
603 disk_super = dm_block_data(sblock); in __begin_transaction()
604 read_superblock_fields(cmd, disk_super); in __begin_transaction()
614 struct cache_disk_superblock *disk_super; in __commit_transaction() local
639 disk_super = dm_block_data(sblock); in __commit_transaction()
641 disk_super->flags = cpu_to_le32(cmd->flags); in __commit_transaction()
643 update_flags(disk_super, mutator); in __commit_transaction()
645 disk_super->mapping_root = cpu_to_le64(cmd->root); in __commit_transaction()
646 disk_super->hint_root = cpu_to_le64(cmd->hint_root); in __commit_transaction()
647 disk_super->discard_root = cpu_to_le64(cmd->discard_root); in __commit_transaction()
648 disk_super->discard_block_size = cpu_to_le64(cmd->discard_block_size); in __commit_transaction()
649 disk_super->discard_nr_blocks = cpu_to_le64(from_dblock(cmd->discard_nr_blocks)); in __commit_transaction()
650 disk_super->cache_blocks = cpu_to_le32(from_cblock(cmd->cache_blocks)); in __commit_transaction()
651 strncpy(disk_super->policy_name, cmd->policy_name, sizeof(disk_super->policy_name)); in __commit_transaction()
652 disk_super->policy_version[0] = cpu_to_le32(cmd->policy_version[0]); in __commit_transaction()
653 disk_super->policy_version[1] = cpu_to_le32(cmd->policy_version[1]); in __commit_transaction()
654 disk_super->policy_version[2] = cpu_to_le32(cmd->policy_version[2]); in __commit_transaction()
656 disk_super->read_hits = cpu_to_le32(cmd->stats.read_hits); in __commit_transaction()
657 disk_super->read_misses = cpu_to_le32(cmd->stats.read_misses); in __commit_transaction()
658 disk_super->write_hits = cpu_to_le32(cmd->stats.write_hits); in __commit_transaction()
659 disk_super->write_misses = cpu_to_le32(cmd->stats.write_misses); in __commit_transaction()
660 __copy_sm_root(cmd, disk_super); in __commit_transaction()
1482 struct cache_disk_superblock *disk_super; in dm_cache_metadata_set_needs_check() local
1493 disk_super = dm_block_data(sblock); in dm_cache_metadata_set_needs_check()
1494 disk_super->flags = cpu_to_le32(cmd->flags); in dm_cache_metadata_set_needs_check()