Lines Matching refs:sbi
4 static bool check_layout_compatibility(struct erofs_sb_info *sbi,
9 sbi->feature_incompat = feature;
20 static int erofs_init_devices(struct erofs_sb_info *sbi,
26 sbi->total_blocks = sbi->primarydevice_blocks;
33 if (ondisk_extradevs != sbi->extra_devices) {
35 ondisk_extradevs, sbi->extra_devices);
41 sbi->device_id_mask = roundup_pow_of_two(ondisk_extradevs + 1) - 1;
42 sbi->devs = calloc(ondisk_extradevs, sizeof(*sbi->devs));
43 if (!sbi->devs)
52 free(sbi->devs);
56 sbi->devs[i].mapped_blkaddr = dis.mapped_blkaddr;
57 sbi->total_blocks += dis.blocks;
82 sbi.feature_compat = le32_to_cpu(dsb->feature_compat);
84 sbi.blkszbits = dsb->blkszbits;
85 if (sbi.blkszbits < 9 ||
86 sbi.blkszbits > ilog2(EROFS_MAX_BLOCK_SIZE)) {
90 } else if (!check_layout_compatibility(&sbi, dsb)) {
94 sbi.primarydevice_blocks = le32_to_cpu(dsb->blocks);
95 sbi.meta_blkaddr = le32_to_cpu(dsb->meta_blkaddr);
96 sbi.xattr_blkaddr = le32_to_cpu(dsb->xattr_blkaddr);
97 sbi.islotbits = EROFS_ISLOTBITS;
98 sbi.root_nid = le16_to_cpu(dsb->root_nid);
99 sbi.packed_nid = le64_to_cpu(dsb->packed_nid);
100 sbi.inos = le64_to_cpu(dsb->inos);
101 sbi.checksum = le32_to_cpu(dsb->checksum);
103 sbi.build_time = le64_to_cpu(dsb->build_time);
104 sbi.build_time_nsec = le32_to_cpu(dsb->build_time_nsec);
106 memcpy(&sbi.uuid, dsb->uuid, sizeof(dsb->uuid));
107 return erofs_init_devices(&sbi, dsb);