Lines Matching refs:sb
50 static void zonefs_account_active(struct super_block *sb, in zonefs_account_active() argument
53 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_account_active()
99 static int zonefs_zone_mgmt(struct super_block *sb, in zonefs_zone_mgmt() argument
115 trace_zonefs_zone_mgmt(sb, z, op); in zonefs_zone_mgmt()
116 ret = blkdev_zone_mgmt(sb->s_bdev, op, z->z_sector, in zonefs_zone_mgmt()
119 zonefs_err(sb, in zonefs_zone_mgmt()
156 struct super_block *sb = inode->i_sb; in zonefs_update_stats() local
157 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_update_stats()
171 nr_blocks = (old_isize - new_isize) >> sb->s_blocksize_bits; in zonefs_update_stats()
178 (new_isize - old_isize) >> sb->s_blocksize_bits; in zonefs_update_stats()
190 static loff_t zonefs_check_zone_condition(struct super_block *sb, in zonefs_check_zone_condition() argument
196 zonefs_warn(sb, "Zone %llu: offline zone\n", in zonefs_check_zone_condition()
209 zonefs_warn(sb, "Zone %llu: read-only zone\n", in zonefs_check_zone_condition()
263 struct super_block *sb = inode->i_sb; in zonefs_handle_io_error() local
264 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_handle_io_error()
273 data_size = zonefs_check_zone_condition(sb, z, zone); in zonefs_handle_io_error()
299 zonefs_warn(sb, in zonefs_handle_io_error()
311 zonefs_warn(sb, "inode %llu: read/write access disabled\n", in zonefs_handle_io_error()
319 zonefs_warn(sb, "inode %llu: write access disabled\n", in zonefs_handle_io_error()
345 if ((sbi->s_mount_opts & ZONEFS_MNTOPT_ERRORS_RO) && !sb_rdonly(sb)) { in zonefs_handle_io_error()
346 zonefs_warn(sb, "remounting filesystem read-only\n"); in zonefs_handle_io_error()
347 sb->s_flags |= SB_RDONLY; in zonefs_handle_io_error()
370 struct super_block *sb = inode->i_sb; in __zonefs_io_error() local
400 ret = blkdev_report_zones(sb->s_bdev, z->z_sector, 1, in __zonefs_io_error()
405 zonefs_err(sb, "Get inode %llu zone information failed %d\n", in __zonefs_io_error()
407 zonefs_warn(sb, "remounting filesystem read-only\n"); in __zonefs_io_error()
408 sb->s_flags |= SB_RDONLY; in __zonefs_io_error()
418 static struct inode *zonefs_alloc_inode(struct super_block *sb) in zonefs_alloc_inode() argument
422 zi = alloc_inode_sb(sb, zonefs_inode_cachep, GFP_KERNEL); in zonefs_alloc_inode()
443 struct super_block *sb = dentry->d_sb; in zonefs_statfs() local
444 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_statfs()
448 buf->f_bsize = sb->s_blocksize; in zonefs_statfs()
631 struct super_block *sb = dir->i_sb; in zonefs_get_file_inode() local
632 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_get_file_inode()
648 inode = iget_locked(sb, ino); in zonefs_get_file_inode()
679 static struct inode *zonefs_get_zgroup_inode(struct super_block *sb, in zonefs_get_zgroup_inode() argument
682 struct inode *root = d_inode(sb->s_root); in zonefs_get_zgroup_inode()
683 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_get_zgroup_inode()
685 ino_t ino = bdev_nr_zones(sb->s_bdev) + ztype + 1; in zonefs_get_zgroup_inode()
687 inode = iget_locked(sb, ino); in zonefs_get_zgroup_inode()
713 struct super_block *sb = dir->i_sb; in zonefs_get_dir_inode() local
714 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_get_dir_inode()
733 return zonefs_get_zgroup_inode(sb, ztype); in zonefs_get_dir_inode()
755 struct super_block *sb = inode->i_sb; in zonefs_readdir_root() local
756 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_readdir_root()
758 ino_t base_ino = bdev_nr_zones(sb->s_bdev) + 1; in zonefs_readdir_root()
792 struct super_block *sb = inode->i_sb; in zonefs_readdir_zgroup() local
793 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_readdir_zgroup()
851 struct super_block *sb; member
861 struct super_block *sb = zd->sb; in zonefs_get_zone_info_cb() local
862 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_get_zone_info_cb()
895 zonefs_err(zd->sb, "Unsupported zone type 0x%x\n", in zonefs_get_zone_info_cb()
907 struct block_device *bdev = zd->sb->s_bdev; in zonefs_get_zone_info()
918 zonefs_err(zd->sb, "Zone report failed %d\n", ret); in zonefs_get_zone_info()
923 zonefs_err(zd->sb, "Invalid zone report (%d/%u zones)\n", in zonefs_get_zone_info()
939 static int zonefs_init_zgroup(struct super_block *sb, in zonefs_init_zgroup() argument
943 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_init_zgroup()
963 end = zd->zones + bdev_nr_zones(sb->s_bdev); in zonefs_init_zgroup()
1001 if (z->z_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && in zonefs_init_zgroup()
1003 zonefs_err(sb, in zonefs_init_zgroup()
1006 bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT); in zonefs_init_zgroup()
1012 z->z_wpoffset = zonefs_check_zone_condition(sb, z, zone); in zonefs_init_zgroup()
1025 sb->s_maxbytes = max(z->z_capacity, sb->s_maxbytes); in zonefs_init_zgroup()
1026 sbi->s_blocks += z->z_capacity >> sb->s_blocksize_bits; in zonefs_init_zgroup()
1027 sbi->s_used_blocks += z->z_wpoffset >> sb->s_blocksize_bits; in zonefs_init_zgroup()
1038 ret = zonefs_zone_mgmt(sb, z, REQ_OP_ZONE_CLOSE); in zonefs_init_zgroup()
1043 zonefs_account_active(sb, z); in zonefs_init_zgroup()
1051 zonefs_info(sb, "Zone group \"%s\" has %u file%s\n", in zonefs_init_zgroup()
1059 static void zonefs_free_zgroups(struct super_block *sb) in zonefs_free_zgroups() argument
1061 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_free_zgroups()
1076 static int zonefs_init_zgroups(struct super_block *sb) in zonefs_init_zgroups() argument
1084 zd.sb = sb; in zonefs_init_zgroups()
1091 ret = zonefs_init_zgroup(sb, &zd, ztype); in zonefs_init_zgroups()
1093 zonefs_info(sb, in zonefs_init_zgroups()
1103 zonefs_free_zgroups(sb); in zonefs_init_zgroups()
1111 static int zonefs_read_super(struct super_block *sb) in zonefs_read_super() argument
1113 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_read_super()
1122 ret = bdev_rw_virt(sb->s_bdev, 0, super, ZONEFS_SUPER_SIZE, in zonefs_read_super()
1135 zonefs_err(sb, "Invalid checksum (Expected 0x%08x, got 0x%08x)", in zonefs_read_super()
1142 zonefs_err(sb, "Unknown features set 0x%llx\n", in zonefs_read_super()
1151 zonefs_err(sb, "Invalid UID feature\n"); in zonefs_read_super()
1160 zonefs_err(sb, "Invalid GID feature\n"); in zonefs_read_super()
1169 zonefs_err(sb, "Reserved area is being used\n"); in zonefs_read_super()
1188 static int zonefs_get_zgroup_inodes(struct super_block *sb) in zonefs_get_zgroup_inodes() argument
1190 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_get_zgroup_inodes()
1198 dir_inode = zonefs_get_zgroup_inode(sb, ztype); in zonefs_get_zgroup_inodes()
1208 static void zonefs_release_zgroup_inodes(struct super_block *sb) in zonefs_release_zgroup_inodes() argument
1210 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_release_zgroup_inodes()
1229 static int zonefs_fill_super(struct super_block *sb, struct fs_context *fc) in zonefs_fill_super() argument
1237 if (!bdev_is_zoned(sb->s_bdev)) { in zonefs_fill_super()
1238 zonefs_err(sb, "Not a zoned block device\n"); in zonefs_fill_super()
1253 sb->s_fs_info = sbi; in zonefs_fill_super()
1254 sb->s_magic = ZONEFS_MAGIC; in zonefs_fill_super()
1255 sb->s_maxbytes = 0; in zonefs_fill_super()
1256 sb->s_op = &zonefs_sops; in zonefs_fill_super()
1257 sb->s_time_gran = 1; in zonefs_fill_super()
1264 sb_set_blocksize(sb, bdev_zone_write_granularity(sb->s_bdev)); in zonefs_fill_super()
1265 sbi->s_zone_sectors_shift = ilog2(bdev_zone_sectors(sb->s_bdev)); in zonefs_fill_super()
1272 sbi->s_max_wro_seq_files = bdev_max_open_zones(sb->s_bdev); in zonefs_fill_super()
1274 sbi->s_max_active_seq_files = bdev_max_active_zones(sb->s_bdev); in zonefs_fill_super()
1276 ret = zonefs_read_super(sb); in zonefs_fill_super()
1280 zonefs_info(sb, "Mounting %u zones", bdev_nr_zones(sb->s_bdev)); in zonefs_fill_super()
1285 zonefs_info(sb, in zonefs_fill_super()
1291 ret = zonefs_init_zgroups(sb); in zonefs_fill_super()
1297 inode = new_inode(sb); in zonefs_fill_super()
1301 inode->i_ino = bdev_nr_zones(sb->s_bdev); in zonefs_fill_super()
1315 sb->s_root = d_make_root(inode); in zonefs_fill_super()
1316 if (!sb->s_root) in zonefs_fill_super()
1323 ret = zonefs_get_zgroup_inodes(sb); in zonefs_fill_super()
1327 ret = zonefs_sysfs_register(sb); in zonefs_fill_super()
1334 zonefs_release_zgroup_inodes(sb); in zonefs_fill_super()
1335 zonefs_free_zgroups(sb); in zonefs_fill_super()
1340 static void zonefs_kill_super(struct super_block *sb) in zonefs_kill_super() argument
1342 struct zonefs_sb_info *sbi = ZONEFS_SB(sb); in zonefs_kill_super()
1345 zonefs_release_zgroup_inodes(sb); in zonefs_kill_super()
1347 kill_block_super(sb); in zonefs_kill_super()
1349 zonefs_sysfs_unregister(sb); in zonefs_kill_super()
1350 zonefs_free_zgroups(sb); in zonefs_kill_super()
1369 struct super_block *sb = fc->root->d_sb; in zonefs_reconfigure() local
1370 struct zonefs_sb_info *sbi = sb->s_fs_info; in zonefs_reconfigure()