bool ext4_sb_sparse(uint32_t group) { if (group <= 1) return 1; if (!(group & 1)) return 0; return (is_power_of(group, 7) || is_power_of(group, 5) || is_power_of(group, 3)); }
/* Returns 1 if the bg contains a backup superblock. On filesystems with the sparse_super feature, only block groups 0, 1, and powers of 3, 5, and 7 have backup superblocks. Otherwise, all block groups have backup superblocks */ int ext4_bg_has_super_block(int bg) { /* Without sparse_super, every block group has a superblock */ if (!(info.feat_ro_compat & EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER)) return 1; if (bg == 0 || bg == 1) return 1; if (is_power_of(bg, 3) || is_power_of(bg, 5) || is_power_of(bg, 7)) return 1; return 0; }