Lines Matching refs:super

56 	struct logfs_super *super = logfs_super(sb);  in dump_segfile()  local
60 for (segno = 0; segno < super->s_no_segs; segno++) { in dump_segfile()
64 if (++segno < super->s_no_segs) { in dump_segfile()
69 if (++segno < super->s_no_segs) { in dump_segfile()
74 if (++segno < super->s_no_segs) { in dump_segfile()
100 struct logfs_super *super = logfs_super(sb); in logfs_statfs() local
104 stats->f_blocks = super->s_size >> LOGFS_BLOCK_BITS >> 3; in logfs_statfs()
105 stats->f_bfree = super->s_free_bytes >> sb->s_blocksize_bits; in logfs_statfs()
106 stats->f_bavail = super->s_free_bytes >> sb->s_blocksize_bits; in logfs_statfs()
115 struct logfs_super *super = _super; in logfs_sb_set() local
117 sb->s_fs_info = super; in logfs_sb_set()
118 sb->s_mtd = super->s_mtd; in logfs_sb_set()
119 sb->s_bdev = super->s_bdev; in logfs_sb_set()
133 struct logfs_super *super = _super; in logfs_sb_test() local
134 struct mtd_info *mtd = super->s_mtd; in logfs_sb_test()
138 if (super->s_bdev && sb->s_bdev == super->s_bdev) in logfs_sb_test()
158 struct logfs_super *super = logfs_super(sb); in logfs_write_ds() local
165 ds->ds_ifile_levels = super->s_ifile_levels; in logfs_write_ds()
166 ds->ds_iblock_levels = super->s_iblock_levels; in logfs_write_ds()
167 ds->ds_data_levels = super->s_data_levels; /* XXX: Remove */ in logfs_write_ds()
168 ds->ds_segment_shift = super->s_segshift; in logfs_write_ds()
170 ds->ds_write_shift = super->s_writeshift; in logfs_write_ds()
171 ds->ds_filesystem_size = cpu_to_be64(super->s_size); in logfs_write_ds()
172 ds->ds_segment_size = cpu_to_be32(super->s_segsize); in logfs_write_ds()
173 ds->ds_bad_seg_reserve = cpu_to_be32(super->s_bad_seg_reserve); in logfs_write_ds()
174 ds->ds_feature_incompat = cpu_to_be64(super->s_feature_incompat); in logfs_write_ds()
175 ds->ds_feature_ro_compat= cpu_to_be64(super->s_feature_ro_compat); in logfs_write_ds()
176 ds->ds_feature_compat = cpu_to_be64(super->s_feature_compat); in logfs_write_ds()
177 ds->ds_feature_flags = cpu_to_be64(super->s_feature_flags); in logfs_write_ds()
178 ds->ds_root_reserve = cpu_to_be64(super->s_root_reserve); in logfs_write_ds()
179 ds->ds_speed_reserve = cpu_to_be64(super->s_speed_reserve); in logfs_write_ds()
181 ds->ds_journal_seg[i] = cpu_to_be32(super->s_journal_seg[i]); in logfs_write_ds()
190 struct logfs_super *super = logfs_super(sb); in write_one_sb() local
208 err = super->s_devops->write_sb(sb, page); in write_one_sb()
215 struct logfs_super *super = logfs_super(sb); in logfs_write_sb() local
219 err = write_one_sb(sb, super->s_devops->find_first_sb); in logfs_write_sb()
224 err = write_one_sb(sb, super->s_devops->find_last_sb); in logfs_write_sb()
243 struct logfs_super *super = logfs_super(sb); in logfs_recover_sb() local
249 err = wbuf_read(sb, super->s_sb_ofs[0], sizeof(*ds0), ds0); in logfs_recover_sb()
253 err = wbuf_read(sb, super->s_sb_ofs[1], sizeof(*ds1), ds1); in logfs_recover_sb()
261 return write_one_sb(sb, super->s_devops->find_first_sb); in logfs_recover_sb()
265 return write_one_sb(sb, super->s_devops->find_last_sb); in logfs_recover_sb()
309 struct logfs_super *super = logfs_super(sb); in logfs_get_sb_final() local
323 super->s_erase_page = alloc_pages(GFP_KERNEL, 0); in logfs_get_sb_final()
324 if (!super->s_erase_page) in logfs_get_sb_final()
326 memset(page_address(super->s_erase_page), 0xFF, PAGE_SIZE); in logfs_get_sb_final()
331 __free_page(super->s_erase_page); in logfs_get_sb_final()
339 iput(super->s_master_inode); in logfs_get_sb_final()
340 iput(super->s_segfile_inode); in logfs_get_sb_final()
341 iput(super->s_mapping_inode); in logfs_get_sb_final()
361 struct logfs_super *super = logfs_super(sb); in find_super_block() local
364 first = super->s_devops->find_first_sb(sb, &super->s_sb_ofs[0]); in find_super_block()
367 last = super->s_devops->find_last_sb(sb, &super->s_sb_ofs[1]); in find_super_block()
392 struct logfs_super *super = logfs_super(sb); in __logfs_read_sb() local
402 super->s_size = be64_to_cpu(ds->ds_filesystem_size); in __logfs_read_sb()
403 super->s_root_reserve = be64_to_cpu(ds->ds_root_reserve); in __logfs_read_sb()
404 super->s_speed_reserve = be64_to_cpu(ds->ds_speed_reserve); in __logfs_read_sb()
405 super->s_bad_seg_reserve = be32_to_cpu(ds->ds_bad_seg_reserve); in __logfs_read_sb()
406 super->s_segsize = 1 << ds->ds_segment_shift; in __logfs_read_sb()
407 super->s_segmask = (1 << ds->ds_segment_shift) - 1; in __logfs_read_sb()
408 super->s_segshift = ds->ds_segment_shift; in __logfs_read_sb()
411 super->s_writesize = 1 << ds->ds_write_shift; in __logfs_read_sb()
412 super->s_writeshift = ds->ds_write_shift; in __logfs_read_sb()
413 super->s_no_segs = super->s_size >> super->s_segshift; in __logfs_read_sb()
414 super->s_no_blocks = super->s_segsize >> sb->s_blocksize_bits; in __logfs_read_sb()
415 super->s_feature_incompat = be64_to_cpu(ds->ds_feature_incompat); in __logfs_read_sb()
416 super->s_feature_ro_compat = be64_to_cpu(ds->ds_feature_ro_compat); in __logfs_read_sb()
417 super->s_feature_compat = be64_to_cpu(ds->ds_feature_compat); in __logfs_read_sb()
418 super->s_feature_flags = be64_to_cpu(ds->ds_feature_flags); in __logfs_read_sb()
421 super->s_journal_seg[i] = be32_to_cpu(ds->ds_journal_seg[i]); in __logfs_read_sb()
423 super->s_ifile_levels = ds->ds_ifile_levels; in __logfs_read_sb()
424 super->s_iblock_levels = ds->ds_iblock_levels; in __logfs_read_sb()
425 super->s_data_levels = ds->ds_data_levels; in __logfs_read_sb()
426 super->s_total_levels = super->s_ifile_levels + super->s_iblock_levels in __logfs_read_sb()
427 + super->s_data_levels; in __logfs_read_sb()
434 struct logfs_super *super = logfs_super(sb); in logfs_read_sb() local
437 super->s_btree_pool = mempool_create(32, btree_alloc, btree_free, NULL); in logfs_read_sb()
438 if (!super->s_btree_pool) in logfs_read_sb()
441 btree_init_mempool64(&super->s_shadow_tree.new, super->s_btree_pool); in logfs_read_sb()
442 btree_init_mempool64(&super->s_shadow_tree.old, super->s_btree_pool); in logfs_read_sb()
443 btree_init_mempool32(&super->s_shadow_tree.segment_map, in logfs_read_sb()
444 super->s_btree_pool); in logfs_read_sb()
454 if (super->s_feature_incompat & ~LOGFS_FEATURES_INCOMPAT) in logfs_read_sb()
456 if ((super->s_feature_ro_compat & ~LOGFS_FEATURES_RO_COMPAT) && in logfs_read_sb()
481 struct logfs_super *super = logfs_super(sb); in logfs_kill_sb() local
495 super->s_flags |= LOGFS_SB_FLAG_SHUTDOWN; in logfs_kill_sb()
497 BUG_ON(super->s_dirty_used_bytes || super->s_dirty_free_bytes); in logfs_kill_sb()
503 if (super->s_erase_page) in logfs_kill_sb()
504 __free_page(super->s_erase_page); in logfs_kill_sb()
505 super->s_devops->put_device(super); in logfs_kill_sb()
506 logfs_mempool_destroy(super->s_btree_pool); in logfs_kill_sb()
507 logfs_mempool_destroy(super->s_alias_pool); in logfs_kill_sb()
508 kfree(super); in logfs_kill_sb()
512 static struct dentry *logfs_get_sb_device(struct logfs_super *super, in logfs_get_sb_device() argument
522 sb = sget(type, logfs_sb_test, logfs_sb_set, flags | MS_NOATIME, super); in logfs_get_sb_device()
524 super->s_devops->put_device(super); in logfs_get_sb_device()
525 kfree(super); in logfs_get_sb_device()
531 super->s_devops->put_device(super); in logfs_get_sb_device()
532 kfree(super); in logfs_get_sb_device()
560 iput(super->s_master_inode); in logfs_get_sb_device()
561 iput(super->s_segfile_inode); in logfs_get_sb_device()
562 iput(super->s_mapping_inode); in logfs_get_sb_device()
571 struct logfs_super *super; in logfs_mount() local
574 super = kzalloc(sizeof(*super), GFP_KERNEL); in logfs_mount()
575 if (!super) in logfs_mount()
578 mutex_init(&super->s_dirop_mutex); in logfs_mount()
579 mutex_init(&super->s_object_alias_mutex); in logfs_mount()
580 INIT_LIST_HEAD(&super->s_freeing_list); in logfs_mount()
583 err = logfs_get_sb_bdev(super, type, devname); in logfs_mount()
585 err = logfs_get_sb_bdev(super, type, devname); in logfs_mount()
592 err = logfs_get_sb_mtd(super, mtdnr); in logfs_mount()
596 kfree(super); in logfs_mount()
600 return logfs_get_sb_device(super, type, flags); in logfs_mount()