Lines Matching refs:sb

30 static int affs_remount (struct super_block *sb, int *flags, char *data);
33 affs_commit_super(struct super_block *sb, int wait) in affs_commit_super() argument
35 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_commit_super()
37 struct affs_root_tail *tail = AFFS_ROOT_TAIL(sb, bh); in affs_commit_super()
41 affs_fix_checksum(sb, bh); in affs_commit_super()
50 affs_put_super(struct super_block *sb) in affs_put_super() argument
52 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_put_super()
59 affs_sync_fs(struct super_block *sb, int wait) in affs_sync_fs() argument
61 affs_commit_super(sb, wait); in affs_sync_fs()
68 struct super_block *sb; in flush_superblock() local
71 sb = sbi->sb; in flush_superblock()
77 affs_commit_super(sb, 1); in flush_superblock()
80 void affs_mark_sb_dirty(struct super_block *sb) in affs_mark_sb_dirty() argument
82 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_mark_sb_dirty()
85 if (sb_rdonly(sb)) in affs_mark_sb_dirty()
99 static struct inode *affs_alloc_inode(struct super_block *sb) in affs_alloc_inode() argument
103 i = alloc_inode_sb(sb, affs_inode_cachep, GFP_KERNEL); in affs_alloc_inode()
297 struct super_block *sb = root->d_sb; in affs_show_options() local
298 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_show_options()
300 if (sb->s_blocksize) in affs_show_options()
301 seq_printf(m, ",bs=%lu", sb->s_blocksize); in affs_show_options()
333 static int affs_fill_super(struct super_block *sb, void *data, int silent) in affs_fill_super() argument
354 sb->s_magic = AFFS_SUPER_MAGIC; in affs_fill_super()
355 sb->s_op = &affs_sops; in affs_fill_super()
356 sb->s_flags |= SB_NODIRATIME; in affs_fill_super()
358 sb->s_time_gran = NSEC_PER_SEC; in affs_fill_super()
359 sb->s_time_min = sys_tz.tz_minuteswest * 60 + AFFS_EPOCH_DELTA; in affs_fill_super()
360 sb->s_time_max = 86400LL * U32_MAX + 86400 + sb->s_time_min; in affs_fill_super()
366 sb->s_fs_info = sbi; in affs_fill_super()
367 sbi->sb = sb; in affs_fill_super()
392 size = bdev_nr_sectors(sb->s_bdev); in affs_fill_super()
395 affs_set_blocksize(sb, PAGE_SIZE); in affs_fill_super()
398 i = bdev_logical_block_size(sb->s_bdev); in affs_fill_super()
410 affs_set_blocksize(sb, blocksize); in affs_fill_super()
426 sb->s_id, in affs_fill_super()
429 root_bh = affs_bread(sb, sbi->s_root_block + num_bm); in affs_fill_super()
432 if (!affs_checksum_block(sb, root_bh) && in affs_fill_super()
434 be32_to_cpu(AFFS_ROOT_TAIL(sb, root_bh)->stype) == ST_ROOT) { in affs_fill_super()
444 pr_err("No valid root block on device %s\n", sb->s_id); in affs_fill_super()
454 boot_bh = sb_bread(sb, 0); in affs_fill_super()
468 || chksum == MUFS_DCOFS) && !sb_rdonly(sb)) { in affs_fill_super()
469 pr_notice("Dircache FS - mounting %s read only\n", sb->s_id); in affs_fill_super()
470 sb->s_flags |= SB_RDONLY; in affs_fill_super()
492 sb->s_flags |= SB_NOEXEC; in affs_fill_super()
502 sb->s_flags |= SB_NOEXEC; in affs_fill_super()
506 sb->s_id, chksum); in affs_fill_super()
511 u8 len = AFFS_ROOT_TAIL(sb, root_bh)->disk_name[0]; in affs_fill_super()
514 AFFS_ROOT_TAIL(sb, root_bh)->disk_name + 1, in affs_fill_super()
518 sb->s_flags |= SB_NODEV | SB_NOSUID; in affs_fill_super()
520 sbi->s_data_blksize = sb->s_blocksize; in affs_fill_super()
524 tmp_flags = sb->s_flags; in affs_fill_super()
525 ret = affs_init_bitmap(sb, &tmp_flags); in affs_fill_super()
528 sb->s_flags = tmp_flags; in affs_fill_super()
532 root_inode = affs_iget(sb, root_block); in affs_fill_super()
536 if (affs_test_opt(AFFS_SB(sb)->s_flags, SF_INTL)) in affs_fill_super()
537 sb->s_d_op = &affs_intl_dentry_operations; in affs_fill_super()
539 sb->s_d_op = &affs_dentry_operations; in affs_fill_super()
541 sb->s_root = d_make_root(root_inode); in affs_fill_super()
542 if (!sb->s_root) { in affs_fill_super()
547 sb->s_export_op = &affs_export_ops; in affs_fill_super()
548 pr_debug("s_flags=%lX\n", sb->s_flags); in affs_fill_super()
553 affs_remount(struct super_block *sb, int *flags, char *data) in affs_remount() argument
555 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_remount()
569 sync_filesystem(sb); in affs_remount()
595 if ((bool)(*flags & SB_RDONLY) == sb_rdonly(sb)) in affs_remount()
599 affs_free_bitmap(sb); in affs_remount()
601 res = affs_init_bitmap(sb, flags); in affs_remount()
609 struct super_block *sb = dentry->d_sb; in affs_statfs() local
611 u64 id = huge_encode_dev(sb->s_bdev->bd_dev); in affs_statfs()
614 __func__, AFFS_SB(sb)->s_partition_size, in affs_statfs()
615 AFFS_SB(sb)->s_reserved); in affs_statfs()
617 free = affs_count_free_blocks(sb); in affs_statfs()
619 buf->f_bsize = sb->s_blocksize; in affs_statfs()
620 buf->f_blocks = AFFS_SB(sb)->s_partition_size - AFFS_SB(sb)->s_reserved; in affs_statfs()
634 static void affs_kill_sb(struct super_block *sb) in affs_kill_sb() argument
636 struct affs_sb_info *sbi = AFFS_SB(sb); in affs_kill_sb()
637 kill_block_super(sb); in affs_kill_sb()
639 affs_free_bitmap(sb); in affs_kill_sb()