Lines Matching refs:super
59 static int btt_info_write(struct arena_info *arena, struct btt_sb *super)
73 ret = arena_write_bytes(arena, arena->info2off, super,
78 return arena_write_bytes(arena, arena->infooff, super,
82 static int btt_info_read(struct arena_info *arena, struct btt_sb *super)
84 return arena_read_bytes(arena, arena->infooff, super,
774 /* Two pages are reserved for the super block and its copy */
820 static void parse_arena_meta(struct arena_info *arena, struct btt_sb *super,
823 arena->internal_nlba = le32_to_cpu(super->internal_nlba);
824 arena->internal_lbasize = le32_to_cpu(super->internal_lbasize);
825 arena->external_nlba = le32_to_cpu(super->external_nlba);
826 arena->external_lbasize = le32_to_cpu(super->external_lbasize);
827 arena->nfree = le32_to_cpu(super->nfree);
828 arena->version_major = le16_to_cpu(super->version_major);
829 arena->version_minor = le16_to_cpu(super->version_minor);
831 arena->nextoff = (super->nextoff == 0) ? 0 : (arena_off +
832 le64_to_cpu(super->nextoff));
834 arena->dataoff = arena_off + le64_to_cpu(super->dataoff);
835 arena->mapoff = arena_off + le64_to_cpu(super->mapoff);
836 arena->logoff = arena_off + le64_to_cpu(super->logoff);
837 arena->info2off = arena_off + le64_to_cpu(super->info2off);
839 arena->size = (le64_to_cpu(super->nextoff) > 0)
840 ? (le64_to_cpu(super->nextoff))
843 arena->flags = le32_to_cpu(super->flags);
850 struct btt_sb *super;
856 super = kzalloc(sizeof(*super), GFP_KERNEL);
857 if (!super)
869 ret = btt_info_read(arena, super);
873 if (!nd_btt_arena_is_valid(btt->nd_btt, super)) {
887 parse_arena_meta(arena, super, cur_off);
922 kfree(super);
929 kfree(super);
973 struct btt_sb *super;
985 super = kzalloc(sizeof(struct btt_sb), GFP_NOIO);
986 if (!super)
989 strncpy(super->signature, BTT_SIG, BTT_SIG_LEN);
990 memcpy(super->uuid, nd_btt->uuid, 16);
991 memcpy(super->parent_uuid, parent_uuid, 16);
992 super->flags = cpu_to_le32(arena->flags);
993 super->version_major = cpu_to_le16(arena->version_major);
994 super->version_minor = cpu_to_le16(arena->version_minor);
995 super->external_lbasize = cpu_to_le32(arena->external_lbasize);
996 super->external_nlba = cpu_to_le32(arena->external_nlba);
997 super->internal_lbasize = cpu_to_le32(arena->internal_lbasize);
998 super->internal_nlba = cpu_to_le32(arena->internal_nlba);
999 super->nfree = cpu_to_le32(arena->nfree);
1000 super->infosize = cpu_to_le32(sizeof(struct btt_sb));
1001 super->nextoff = cpu_to_le64(arena->nextoff);
1006 super->dataoff = cpu_to_le64(arena->dataoff - arena->infooff);
1007 super->mapoff = cpu_to_le64(arena->mapoff - arena->infooff);
1008 super->logoff = cpu_to_le64(arena->logoff - arena->infooff);
1009 super->info2off = cpu_to_le64(arena->info2off - arena->infooff);
1011 super->flags = 0;
1012 sum = nd_sb_checksum((struct nd_gen_sb *) super);
1013 super->checksum = cpu_to_le64(sum);
1015 ret = btt_info_write(arena, super);
1017 kfree(super);