static void read_erasecount(struct super_block *sb, struct logfs_je_journal_ec *ec) { struct logfs_super *super = logfs_super(sb); int i; journal_for_each(i) super->s_journal_ec[i] = be32_to_cpu(ec->ec[i]); }
static void *logfs_write_erasecount(struct super_block *sb, void *_ec, u16 *type, size_t *len) { struct logfs_super *super = logfs_super(sb); struct logfs_je_journal_ec *ec = _ec; int i; journal_for_each(i) ec->ec[i] = cpu_to_be32(super->s_journal_ec[i]); *type = JE_ERASECOUNT; *len = logfs_journal_erasecount_size(super); return ec; }
static int __logfs_read_sb(struct super_block *sb) { struct logfs_super *super = logfs_super(sb); struct page *page; struct logfs_disk_super *ds; int i; page = find_super_block(sb); if (!page) return -EINVAL; ds = page_address(page); super->s_size = be64_to_cpu(ds->ds_filesystem_size); super->s_root_reserve = be64_to_cpu(ds->ds_root_reserve); super->s_speed_reserve = be64_to_cpu(ds->ds_speed_reserve); super->s_bad_seg_reserve = be32_to_cpu(ds->ds_bad_seg_reserve); super->s_segsize = 1 << ds->ds_segment_shift; super->s_segmask = (1 << ds->ds_segment_shift) - 1; super->s_segshift = ds->ds_segment_shift; sb->s_blocksize = 1 << ds->ds_block_shift; sb->s_blocksize_bits = ds->ds_block_shift; super->s_writesize = 1 << ds->ds_write_shift; super->s_writeshift = ds->ds_write_shift; super->s_no_segs = super->s_size >> super->s_segshift; super->s_no_blocks = super->s_segsize >> sb->s_blocksize_bits; super->s_feature_incompat = be64_to_cpu(ds->ds_feature_incompat); super->s_feature_ro_compat = be64_to_cpu(ds->ds_feature_ro_compat); super->s_feature_compat = be64_to_cpu(ds->ds_feature_compat); super->s_feature_flags = be64_to_cpu(ds->ds_feature_flags); journal_for_each(i) super->s_journal_seg[i] = be32_to_cpu(ds->ds_journal_seg[i]); super->s_ifile_levels = ds->ds_ifile_levels; super->s_iblock_levels = ds->ds_iblock_levels; super->s_data_levels = ds->ds_data_levels; super->s_total_levels = super->s_ifile_levels + super->s_iblock_levels + super->s_data_levels; page_cache_release(page); return 0; }