sbi               603 arch/powerpc/platforms/cell/spufs/inode.c 	struct spufs_sb_info *sbi = spufs_get_sb_info(root->d_sb);
sbi               614 arch/powerpc/platforms/cell/spufs/inode.c 	if (sbi->debug)
sbi               622 arch/powerpc/platforms/cell/spufs/inode.c 	struct spufs_sb_info *sbi = fc->s_fs_info;
sbi               649 arch/powerpc/platforms/cell/spufs/inode.c 		sbi->debug = true;
sbi               750 arch/powerpc/platforms/cell/spufs/inode.c 	struct spufs_sb_info *sbi;
sbi               756 arch/powerpc/platforms/cell/spufs/inode.c 	sbi = kzalloc(sizeof(struct spufs_sb_info), GFP_KERNEL);
sbi               757 arch/powerpc/platforms/cell/spufs/inode.c 	if (!sbi)
sbi               765 arch/powerpc/platforms/cell/spufs/inode.c 	fc->s_fs_info = sbi;
sbi               263 arch/s390/hypfs/inode.c 	struct hypfs_sb_info *sbi = sb->s_fs_info;
sbi               290 arch/s390/hypfs/inode.c 	sbi->update_file = update_file;
sbi               314 arch/s390/hypfs/inode.c 	struct hypfs_sb_info *sbi;
sbi               316 arch/s390/hypfs/inode.c 	sbi = kzalloc(sizeof(struct hypfs_sb_info), GFP_KERNEL);
sbi               317 arch/s390/hypfs/inode.c 	if (!sbi)
sbi               320 arch/s390/hypfs/inode.c 	mutex_init(&sbi->lock);
sbi               321 arch/s390/hypfs/inode.c 	sbi->uid = current_uid();
sbi               322 arch/s390/hypfs/inode.c 	sbi->gid = current_gid();
sbi               324 arch/s390/hypfs/inode.c 	fc->s_fs_info = sbi;
sbi               130 drivers/gpu/drm/i915/gvt/gvt.h 	struct intel_vgpu_sbi sbi;
sbi              1096 drivers/gpu/drm/i915/gvt/handlers.c 	int num = display->sbi.number;
sbi              1100 drivers/gpu/drm/i915/gvt/handlers.c 		if (display->sbi.registers[i].offset == sbi_offset)
sbi              1106 drivers/gpu/drm/i915/gvt/handlers.c 	return display->sbi.registers[i].value;
sbi              1113 drivers/gpu/drm/i915/gvt/handlers.c 	int num = display->sbi.number;
sbi              1117 drivers/gpu/drm/i915/gvt/handlers.c 		if (display->sbi.registers[i].offset == offset)
sbi              1126 drivers/gpu/drm/i915/gvt/handlers.c 		display->sbi.number++;
sbi              1129 drivers/gpu/drm/i915/gvt/handlers.c 	display->sbi.registers[i].offset = offset;
sbi              1130 drivers/gpu/drm/i915/gvt/handlers.c 	display->sbi.registers[i].value = value;
sbi                39 drivers/staging/exfat/exfat_blkdev.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi                40 drivers/staging/exfat/exfat_blkdev.c 	long flags = sbi->debug_flags;
sbi                76 drivers/staging/exfat/exfat_blkdev.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi                77 drivers/staging/exfat/exfat_blkdev.c 	long flags = sbi->debug_flags;
sbi               125 drivers/staging/exfat/exfat_blkdev.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               126 drivers/staging/exfat/exfat_blkdev.c 	long flags = sbi->debug_flags;
sbi                16 drivers/staging/exfat/exfat_core.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi                18 drivers/staging/exfat/exfat_core.c 	sbi->s_dirt = 1;
sbi               614 drivers/staging/exfat/exfat_core.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               615 drivers/staging/exfat/exfat_core.c 	struct exfat_mount_options *opts = &sbi->options;
sbi               146 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               148 drivers/staging/exfat/exfat_super.c 	mutex_lock(&sbi->s_lock);
sbi               153 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               155 drivers/staging/exfat/exfat_super.c 	mutex_unlock(&sbi->s_lock);
sbi               160 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               162 drivers/staging/exfat/exfat_super.c 	return sbi->s_dirt;
sbi               167 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi               169 drivers/staging/exfat/exfat_super.c 	sbi->s_dirt = 0;
sbi               304 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(inode->i_sb);
sbi               309 drivers/staging/exfat/exfat_super.c 	if ((~sbi->options.fs_fmask) & 0222)
sbi               315 drivers/staging/exfat/exfat_super.c static inline mode_t exfat_make_mode(struct exfat_sb_info *sbi, u32 attr,
sbi               322 drivers/staging/exfat/exfat_super.c 		return (mode & ~sbi->options.fs_dmask) | S_IFDIR;
sbi               324 drivers/staging/exfat/exfat_super.c 		return (mode & ~sbi->options.fs_dmask) | S_IFLNK;
sbi               326 drivers/staging/exfat/exfat_super.c 		return (mode & ~sbi->options.fs_fmask) | S_IFREG;
sbi              2204 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              2205 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              2295 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              2296 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              2315 drivers/staging/exfat/exfat_super.c 		struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              2317 drivers/staging/exfat/exfat_super.c 		flags = sbi->debug_flags;
sbi              2322 drivers/staging/exfat/exfat_super.c 		struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              2331 drivers/staging/exfat/exfat_super.c 		sbi->debug_flags = flags;
sbi              2502 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(inode->i_sb);
sbi              2503 drivers/staging/exfat/exfat_super.c 	struct hlist_head *head = sbi->inode_hashtable + exfat_hash(i_pos);
sbi              2505 drivers/staging/exfat/exfat_super.c 	spin_lock(&sbi->inode_hash_lock);
sbi              2508 drivers/staging/exfat/exfat_super.c 	spin_unlock(&sbi->inode_hash_lock);
sbi              2513 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(inode->i_sb);
sbi              2515 drivers/staging/exfat/exfat_super.c 	spin_lock(&sbi->inode_hash_lock);
sbi              2518 drivers/staging/exfat/exfat_super.c 	spin_unlock(&sbi->inode_hash_lock);
sbi              2840 drivers/staging/exfat/exfat_super.c static int exfat_allow_set_time(struct exfat_sb_info *sbi, struct inode *inode)
sbi              2842 drivers/staging/exfat/exfat_super.c 	mode_t allow_utime = sbi->options.allow_utime;
sbi              2855 drivers/staging/exfat/exfat_super.c static int exfat_sanitize_mode(const struct exfat_sb_info *sbi,
sbi              2863 drivers/staging/exfat/exfat_super.c 		mask = sbi->options.fs_fmask;
sbi              2865 drivers/staging/exfat/exfat_super.c 		mask = sbi->options.fs_dmask;
sbi              2897 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              2898 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              2931 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(dentry->d_sb);
sbi              2950 drivers/staging/exfat/exfat_super.c 		&& exfat_allow_set_time(sbi, inode)) {
sbi              2962 drivers/staging/exfat/exfat_super.c 	     (!uid_eq(attr->ia_uid, sbi->options.fs_uid))) ||
sbi              2964 drivers/staging/exfat/exfat_super.c 	     (!gid_eq(attr->ia_gid, sbi->options.fs_gid))) ||
sbi              2975 drivers/staging/exfat/exfat_super.c 		if (exfat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
sbi              3075 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3076 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              3077 drivers/staging/exfat/exfat_super.c 	struct bd_info_t *p_bd = &(sbi->bd_info);
sbi              3282 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3284 drivers/staging/exfat/exfat_super.c 	struct hlist_head *head = sbi->inode_hashtable + exfat_hash(i_pos);
sbi              3287 drivers/staging/exfat/exfat_super.c 	spin_lock(&sbi->inode_hash_lock);
sbi              3297 drivers/staging/exfat/exfat_super.c 	spin_unlock(&sbi->inode_hash_lock);
sbi              3304 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(inode->i_sb);
sbi              3305 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              3314 drivers/staging/exfat/exfat_super.c 	inode->i_uid = sbi->options.fs_uid;
sbi              3315 drivers/staging/exfat/exfat_super.c 	inode->i_gid = sbi->options.fs_gid;
sbi              3321 drivers/staging/exfat/exfat_super.c 		inode->i_mode = exfat_make_mode(sbi, info.Attr, 0777);
sbi              3330 drivers/staging/exfat/exfat_super.c 		inode->i_mode = exfat_make_mode(sbi, info.Attr, 0777);
sbi              3337 drivers/staging/exfat/exfat_super.c 		inode->i_mode = exfat_make_mode(sbi, info.Attr, 0777);
sbi              3444 drivers/staging/exfat/exfat_super.c static void exfat_free_super(struct exfat_sb_info *sbi)
sbi              3446 drivers/staging/exfat/exfat_super.c 	if (sbi->nls_disk)
sbi              3447 drivers/staging/exfat/exfat_super.c 		unload_nls(sbi->nls_disk);
sbi              3448 drivers/staging/exfat/exfat_super.c 	if (sbi->nls_io)
sbi              3449 drivers/staging/exfat/exfat_super.c 		unload_nls(sbi->nls_io);
sbi              3450 drivers/staging/exfat/exfat_super.c 	if (sbi->options.iocharset != exfat_default_iocharset)
sbi              3451 drivers/staging/exfat/exfat_super.c 		kfree(sbi->options.iocharset);
sbi              3453 drivers/staging/exfat/exfat_super.c 	mutex_destroy(&sbi->s_lock);
sbi              3454 drivers/staging/exfat/exfat_super.c 	kvfree(sbi);
sbi              3459 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3467 drivers/staging/exfat/exfat_super.c 	exfat_free_super(sbi);
sbi              3538 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(root->d_sb);
sbi              3539 drivers/staging/exfat/exfat_super.c 	struct exfat_mount_options *opts = &sbi->options;
sbi              3549 drivers/staging/exfat/exfat_super.c 	if (sbi->nls_disk)
sbi              3550 drivers/staging/exfat/exfat_super.c 		seq_printf(m, ",codepage=%s", sbi->nls_disk->charset);
sbi              3551 drivers/staging/exfat/exfat_super.c 	if (sbi->nls_io)
sbi              3552 drivers/staging/exfat/exfat_super.c 		seq_printf(m, ",iocharset=%s", sbi->nls_io->charset);
sbi              3778 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3781 drivers/staging/exfat/exfat_super.c 	spin_lock_init(&sbi->inode_hash_lock);
sbi              3783 drivers/staging/exfat/exfat_super.c 		INIT_HLIST_HEAD(&sbi->inode_hashtable[i]);
sbi              3789 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3790 drivers/staging/exfat/exfat_super.c 	struct fs_info_t *p_fs = &(sbi->fs_info);
sbi              3806 drivers/staging/exfat/exfat_super.c 	inode->i_uid = sbi->options.fs_uid;
sbi              3807 drivers/staging/exfat/exfat_super.c 	inode->i_gid = sbi->options.fs_gid;
sbi              3810 drivers/staging/exfat/exfat_super.c 	inode->i_mode = exfat_make_mode(sbi, ATTR_SUBDIR, 0777);
sbi              3838 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi;
sbi              3849 drivers/staging/exfat/exfat_super.c 	sbi = kvzalloc(sizeof(*sbi), GFP_KERNEL);
sbi              3850 drivers/staging/exfat/exfat_super.c 	if (!sbi)
sbi              3852 drivers/staging/exfat/exfat_super.c 	mutex_init(&sbi->s_lock);
sbi              3853 drivers/staging/exfat/exfat_super.c 	sb->s_fs_info = sbi;
sbi              3859 drivers/staging/exfat/exfat_super.c 	error = parse_options(data, silent, &debug, &sbi->options);
sbi              3889 drivers/staging/exfat/exfat_super.c 	if (sbi->fs_info.vol_type != EXFAT) {
sbi              3891 drivers/staging/exfat/exfat_super.c 		sprintf(buf, "cp%d", sbi->options.codepage);
sbi              3892 drivers/staging/exfat/exfat_super.c 		sbi->nls_disk = load_nls(buf);
sbi              3893 drivers/staging/exfat/exfat_super.c 		if (!sbi->nls_disk) {
sbi              3899 drivers/staging/exfat/exfat_super.c 	sbi->nls_io = load_nls(sbi->options.iocharset);
sbi              3928 drivers/staging/exfat/exfat_super.c 	exfat_free_super(sbi);
sbi              3973 drivers/staging/exfat/exfat_super.c 	struct exfat_sb_info *sbi = EXFAT_SB(sb);
sbi              3979 drivers/staging/exfat/exfat_super.c 	if (sbi) {
sbi              3980 drivers/staging/exfat/exfat_super.c 		flags = sbi->debug_flags;
sbi                31 drivers/tty/serial/earlycon-riscv-sbi.c EARLYCON_DECLARE(sbi, early_sbi_setup);
sbi               251 fs/adfs/super.c 	struct adfs_sb_info *sbi = ADFS_SB(sb);
sbi               252 fs/adfs/super.c 	struct adfs_discrecord *dr = adfs_map_discrecord(sbi->s_map);
sbi               256 fs/adfs/super.c 	buf->f_namelen = sbi->s_namelen;
sbi               259 fs/adfs/super.c 	buf->f_files   = sbi->s_ids_per_zone * sbi->s_map_size;
sbi                41 fs/affs/bitmap.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi                49 fs/affs/bitmap.c 	if (block > sbi->s_partition_size)
sbi                52 fs/affs/bitmap.c 	blk     = block - sbi->s_reserved;
sbi                53 fs/affs/bitmap.c 	bmap    = blk / sbi->s_bmap_bits;
sbi                54 fs/affs/bitmap.c 	bit     = blk % sbi->s_bmap_bits;
sbi                55 fs/affs/bitmap.c 	bm      = &sbi->s_bitmap[bmap];
sbi                57 fs/affs/bitmap.c 	mutex_lock(&sbi->s_bmlock);
sbi                59 fs/affs/bitmap.c 	bh = sbi->s_bmap_bh;
sbi                60 fs/affs/bitmap.c 	if (sbi->s_last_bmap != bmap) {
sbi                65 fs/affs/bitmap.c 		sbi->s_bmap_bh = bh;
sbi                66 fs/affs/bitmap.c 		sbi->s_last_bmap = bmap;
sbi                86 fs/affs/bitmap.c 	mutex_unlock(&sbi->s_bmlock);
sbi                91 fs/affs/bitmap.c 	mutex_unlock(&sbi->s_bmlock);
sbi                96 fs/affs/bitmap.c 	sbi->s_bmap_bh = NULL;
sbi                97 fs/affs/bitmap.c 	sbi->s_last_bmap = ~0;
sbi                98 fs/affs/bitmap.c 	mutex_unlock(&sbi->s_bmlock);
sbi               118 fs/affs/bitmap.c 	struct affs_sb_info *sbi;
sbi               126 fs/affs/bitmap.c 	sbi = AFFS_SB(sb);
sbi               136 fs/affs/bitmap.c 	if (!goal || goal > sbi->s_partition_size) {
sbi               141 fs/affs/bitmap.c 		goal = sbi->s_reserved;
sbi               144 fs/affs/bitmap.c 	blk = goal - sbi->s_reserved;
sbi               145 fs/affs/bitmap.c 	bmap = blk / sbi->s_bmap_bits;
sbi               146 fs/affs/bitmap.c 	bm = &sbi->s_bitmap[bmap];
sbi               148 fs/affs/bitmap.c 	mutex_lock(&sbi->s_bmlock);
sbi               155 fs/affs/bitmap.c 	i = sbi->s_bmap_count;
sbi               161 fs/affs/bitmap.c 		if (bmap < sbi->s_bmap_count)
sbi               165 fs/affs/bitmap.c 		bm = sbi->s_bitmap;
sbi               167 fs/affs/bitmap.c 	blk = bmap * sbi->s_bmap_bits;
sbi               171 fs/affs/bitmap.c 	bh = sbi->s_bmap_bh;
sbi               172 fs/affs/bitmap.c 	if (sbi->s_last_bmap != bmap) {
sbi               177 fs/affs/bitmap.c 		sbi->s_bmap_bh = bh;
sbi               178 fs/affs/bitmap.c 		sbi->s_last_bmap = bmap;
sbi               182 fs/affs/bitmap.c 	bit = blk % sbi->s_bmap_bits;
sbi               207 fs/affs/bitmap.c 	blk += bit + sbi->s_reserved;
sbi               229 fs/affs/bitmap.c 	mutex_unlock(&sbi->s_bmlock);
sbi               236 fs/affs/bitmap.c 	sbi->s_bmap_bh = NULL;
sbi               237 fs/affs/bitmap.c 	sbi->s_last_bmap = ~0;
sbi               239 fs/affs/bitmap.c 	mutex_unlock(&sbi->s_bmlock);
sbi               251 fs/affs/bitmap.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi               256 fs/affs/bitmap.c 	if (!AFFS_ROOT_TAIL(sb, sbi->s_root_bh)->bm_flag) {
sbi               262 fs/affs/bitmap.c 	sbi->s_last_bmap = ~0;
sbi               263 fs/affs/bitmap.c 	sbi->s_bmap_bh = NULL;
sbi               264 fs/affs/bitmap.c 	sbi->s_bmap_bits = sb->s_blocksize * 8 - 32;
sbi               265 fs/affs/bitmap.c 	sbi->s_bmap_count = (sbi->s_partition_size - sbi->s_reserved +
sbi               266 fs/affs/bitmap.c 				 sbi->s_bmap_bits - 1) / sbi->s_bmap_bits;
sbi               267 fs/affs/bitmap.c 	size = sbi->s_bmap_count * sizeof(*bm);
sbi               268 fs/affs/bitmap.c 	bm = sbi->s_bitmap = kzalloc(size, GFP_KERNEL);
sbi               269 fs/affs/bitmap.c 	if (!sbi->s_bitmap) {
sbi               274 fs/affs/bitmap.c 	bmap_blk = (__be32 *)sbi->s_root_bh->b_data;
sbi               278 fs/affs/bitmap.c 	for (i = sbi->s_bmap_count; i > 0; bm++, i--) {
sbi               315 fs/affs/bitmap.c 	offset = (sbi->s_partition_size - sbi->s_reserved) % sbi->s_bmap_bits;
sbi               355 fs/affs/bitmap.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi               357 fs/affs/bitmap.c 	if (!sbi->s_bitmap)
sbi               360 fs/affs/bitmap.c 	affs_brelse(sbi->s_bmap_bh);
sbi               361 fs/affs/bitmap.c 	sbi->s_bmap_bh = NULL;
sbi               362 fs/affs/bitmap.c 	sbi->s_last_bmap = ~0;
sbi               363 fs/affs/bitmap.c 	kfree(sbi->s_bitmap);
sbi               364 fs/affs/bitmap.c 	sbi->s_bitmap = NULL;
sbi                20 fs/affs/inode.c 	struct affs_sb_info	*sbi = AFFS_SB(sb);
sbi                71 fs/affs/inode.c 	if (affs_test_opt(sbi->s_flags, SF_SETMODE))
sbi                72 fs/affs/inode.c 		inode->i_mode = sbi->s_mode;
sbi                77 fs/affs/inode.c 	if (id == 0 || affs_test_opt(sbi->s_flags, SF_SETUID))
sbi                78 fs/affs/inode.c 		inode->i_uid = sbi->s_uid;
sbi                79 fs/affs/inode.c 	else if (id == 0xFFFF && affs_test_opt(sbi->s_flags, SF_MUFS))
sbi                85 fs/affs/inode.c 	if (id == 0 || affs_test_opt(sbi->s_flags, SF_SETGID))
sbi                86 fs/affs/inode.c 		inode->i_gid = sbi->s_gid;
sbi                87 fs/affs/inode.c 	else if (id == 0xFFFF && affs_test_opt(sbi->s_flags, SF_MUFS))
sbi                94 fs/affs/inode.c 		inode->i_uid = sbi->s_uid;
sbi                95 fs/affs/inode.c 		inode->i_gid = sbi->s_gid;
sbi                99 fs/affs/inode.c 		    affs_test_opt(sbi->s_flags, SF_SETMODE)) {
sbi               132 fs/affs/inode.c 					       sbi->s_data_blksize + 1;
sbi               134 fs/affs/inode.c 					       sbi->s_hashsize + 1;
sbi               138 fs/affs/inode.c 		inode->i_mapping->a_ops = affs_test_opt(sbi->s_flags, SF_OFS) ?
sbi               345 fs/affs/namei.c 		struct affs_sb_info *sbi = AFFS_SB(sb);
sbi               348 fs/affs/namei.c 		spin_lock(&sbi->symlink_lock);
sbi               349 fs/affs/namei.c 		while (sbi->s_volume[i])	/* Cannot overflow */
sbi               350 fs/affs/namei.c 			*p++ = sbi->s_volume[i++];
sbi               351 fs/affs/namei.c 		spin_unlock(&sbi->symlink_lock);
sbi                35 fs/affs/super.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi                36 fs/affs/super.c 	struct buffer_head *bh = sbi->s_root_bh;
sbi                52 fs/affs/super.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi                55 fs/affs/super.c 	cancel_delayed_work_sync(&sbi->sb_work);
sbi                67 fs/affs/super.c 	struct affs_sb_info *sbi;
sbi                70 fs/affs/super.c 	sbi = container_of(work, struct affs_sb_info, sb_work.work);
sbi                71 fs/affs/super.c 	sb = sbi->sb;
sbi                73 fs/affs/super.c 	spin_lock(&sbi->work_lock);
sbi                74 fs/affs/super.c 	sbi->work_queued = 0;
sbi                75 fs/affs/super.c 	spin_unlock(&sbi->work_lock);
sbi                82 fs/affs/super.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi                88 fs/affs/super.c 	spin_lock(&sbi->work_lock);
sbi                89 fs/affs/super.c 	if (!sbi->work_queued) {
sbi                91 fs/affs/super.c 	       queue_delayed_work(system_long_wq, &sbi->sb_work, delay);
sbi                92 fs/affs/super.c 	       sbi->work_queued = 1;
sbi                94 fs/affs/super.c 	spin_unlock(&sbi->work_lock);
sbi               298 fs/affs/super.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi               302 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_SETMODE))
sbi               303 fs/affs/super.c 		seq_printf(m, ",mode=%o", sbi->s_mode);
sbi               304 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_MUFS))
sbi               306 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_NO_TRUNCATE))
sbi               308 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_PREFIX))
sbi               309 fs/affs/super.c 		seq_printf(m, ",prefix=%s", sbi->s_prefix);
sbi               310 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_IMMUTABLE))
sbi               312 fs/affs/super.c 	if (sbi->s_reserved != 2)
sbi               313 fs/affs/super.c 		seq_printf(m, ",reserved=%u", sbi->s_reserved);
sbi               314 fs/affs/super.c 	if (sbi->s_root_block != (sbi->s_reserved + sbi->s_partition_size - 1) / 2)
sbi               315 fs/affs/super.c 		seq_printf(m, ",root=%u", sbi->s_root_block);
sbi               316 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_SETGID))
sbi               318 fs/affs/super.c 			   from_kgid_munged(&init_user_ns, sbi->s_gid));
sbi               319 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_SETUID))
sbi               321 fs/affs/super.c 			   from_kuid_munged(&init_user_ns, sbi->s_uid));
sbi               322 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_VERBOSE))
sbi               324 fs/affs/super.c 	if (sbi->s_volume[0])
sbi               325 fs/affs/super.c 		seq_printf(m, ",volume=%s", sbi->s_volume);
sbi               335 fs/affs/super.c 	struct affs_sb_info	*sbi;
sbi               362 fs/affs/super.c 	sbi = kzalloc(sizeof(struct affs_sb_info), GFP_KERNEL);
sbi               363 fs/affs/super.c 	if (!sbi)
sbi               366 fs/affs/super.c 	sb->s_fs_info = sbi;
sbi               367 fs/affs/super.c 	sbi->sb = sb;
sbi               368 fs/affs/super.c 	mutex_init(&sbi->s_bmlock);
sbi               369 fs/affs/super.c 	spin_lock_init(&sbi->symlink_lock);
sbi               370 fs/affs/super.c 	spin_lock_init(&sbi->work_lock);
sbi               371 fs/affs/super.c 	INIT_DELAYED_WORK(&sbi->sb_work, flush_superblock);
sbi               374 fs/affs/super.c 				&blocksize,&sbi->s_prefix,
sbi               375 fs/affs/super.c 				sbi->s_volume, &mount_flags)) {
sbi               381 fs/affs/super.c 	sbi->s_flags   = mount_flags;
sbi               382 fs/affs/super.c 	sbi->s_mode    = i;
sbi               383 fs/affs/super.c 	sbi->s_uid     = uid;
sbi               384 fs/affs/super.c 	sbi->s_gid     = gid;
sbi               385 fs/affs/super.c 	sbi->s_reserved= reserved;
sbi               406 fs/affs/super.c 		sbi->s_root_block = root_block;
sbi               408 fs/affs/super.c 			sbi->s_root_block = (reserved + size - 1) / 2;
sbi               411 fs/affs/super.c 		sbi->s_partition_size = size;
sbi               427 fs/affs/super.c 				sbi->s_root_block + num_bm,
sbi               429 fs/affs/super.c 			root_bh = affs_bread(sb, sbi->s_root_block + num_bm);
sbi               435 fs/affs/super.c 				sbi->s_hashsize    = blocksize / 4 - 56;
sbi               436 fs/affs/super.c 				sbi->s_root_block += num_bm;
sbi               450 fs/affs/super.c 	sbi->s_root_bh = root_bh;
sbi               451 fs/affs/super.c 	root_block = sbi->s_root_block;
sbi               476 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_MUFS);
sbi               480 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_INTL);
sbi               483 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_MUFS);
sbi               488 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_MUFS);
sbi               491 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_OFS);
sbi               496 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_MUFS);
sbi               500 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_INTL);
sbi               501 fs/affs/super.c 		affs_set_opt(sbi->s_flags, SF_OFS);
sbi               520 fs/affs/super.c 	sbi->s_data_blksize = sb->s_blocksize;
sbi               521 fs/affs/super.c 	if (affs_test_opt(sbi->s_flags, SF_OFS))
sbi               522 fs/affs/super.c 		sbi->s_data_blksize -= 24;
sbi               555 fs/affs/super.c 	struct affs_sb_info	*sbi = AFFS_SB(sb);
sbi               572 fs/affs/super.c 	memcpy(volume, sbi->s_volume, 32);
sbi               580 fs/affs/super.c 	flush_delayed_work(&sbi->sb_work);
sbi               582 fs/affs/super.c 	sbi->s_flags = mount_flags;
sbi               583 fs/affs/super.c 	sbi->s_mode  = mode;
sbi               584 fs/affs/super.c 	sbi->s_uid   = uid;
sbi               585 fs/affs/super.c 	sbi->s_gid   = gid;
sbi               587 fs/affs/super.c 	spin_lock(&sbi->symlink_lock);
sbi               589 fs/affs/super.c 		kfree(sbi->s_prefix);
sbi               590 fs/affs/super.c 		sbi->s_prefix = prefix;
sbi               592 fs/affs/super.c 	memcpy(sbi->s_volume, volume, 32);
sbi               593 fs/affs/super.c 	spin_unlock(&sbi->symlink_lock);
sbi               637 fs/affs/super.c 	struct affs_sb_info *sbi = AFFS_SB(sb);
sbi               639 fs/affs/super.c 	if (sbi) {
sbi               641 fs/affs/super.c 		affs_brelse(sbi->s_root_bh);
sbi               642 fs/affs/super.c 		kfree(sbi->s_prefix);
sbi               643 fs/affs/super.c 		mutex_destroy(&sbi->s_bmlock);
sbi               644 fs/affs/super.c 		kfree(sbi);
sbi                35 fs/affs/symlink.c 		struct affs_sb_info *sbi = AFFS_SB(inode->i_sb);
sbi                37 fs/affs/symlink.c 		spin_lock(&sbi->symlink_lock);
sbi                38 fs/affs/symlink.c 		pf = sbi->s_prefix ? sbi->s_prefix : "/";
sbi                41 fs/affs/symlink.c 		spin_unlock(&sbi->symlink_lock);
sbi                64 fs/autofs/autofs_i.h 	struct autofs_sb_info *sbi;
sbi               144 fs/autofs/autofs_i.h static inline int autofs_oz_mode(struct autofs_sb_info *sbi)
sbi               146 fs/autofs/autofs_i.h 	return ((sbi->flags & AUTOFS_SBI_CATATONIC) ||
sbi               147 fs/autofs/autofs_i.h 		 task_pgrp(current) == sbi->oz_pgrp);
sbi               160 fs/autofs/autofs_i.h 			   struct autofs_sb_info *sbi, unsigned int how);
sbi               228 fs/autofs/autofs_i.h static inline u32 autofs_get_dev(struct autofs_sb_info *sbi)
sbi               230 fs/autofs/autofs_i.h 	return new_encode_dev(sbi->sb->s_dev);
sbi               233 fs/autofs/autofs_i.h static inline u64 autofs_get_ino(struct autofs_sb_info *sbi)
sbi               235 fs/autofs/autofs_i.h 	return d_inode(sbi->sb->s_root)->i_ino;
sbi               240 fs/autofs/autofs_i.h 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               245 fs/autofs/autofs_i.h 			list_add(&ino->expiring, &sbi->expiring_list);
sbi               251 fs/autofs/autofs_i.h 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               255 fs/autofs/autofs_i.h 		spin_lock(&sbi->lookup_lock);
sbi               257 fs/autofs/autofs_i.h 			list_add(&ino->expiring, &sbi->expiring_list);
sbi               258 fs/autofs/autofs_i.h 		spin_unlock(&sbi->lookup_lock);
sbi               264 fs/autofs/autofs_i.h 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               268 fs/autofs/autofs_i.h 		spin_lock(&sbi->lookup_lock);
sbi               271 fs/autofs/autofs_i.h 		spin_unlock(&sbi->lookup_lock);
sbi               153 fs/autofs/dev-ioctl.c 				    struct autofs_sb_info *sbi,
sbi               164 fs/autofs/dev-ioctl.c 				     struct autofs_sb_info *sbi,
sbi               167 fs/autofs/dev-ioctl.c 	param->protover.version = sbi->version;
sbi               173 fs/autofs/dev-ioctl.c 					struct autofs_sb_info *sbi,
sbi               176 fs/autofs/dev-ioctl.c 	param->protosubver.sub_version = sbi->sub_version;
sbi               218 fs/autofs/dev-ioctl.c 	return ino && ino->sbi->type & *(unsigned *)p;
sbi               257 fs/autofs/dev-ioctl.c 				      struct autofs_sb_info *sbi,
sbi               288 fs/autofs/dev-ioctl.c 				       struct autofs_sb_info *sbi,
sbi               299 fs/autofs/dev-ioctl.c 				  struct autofs_sb_info *sbi,
sbi               305 fs/autofs/dev-ioctl.c 	return autofs_wait_release(sbi, token, 0);
sbi               313 fs/autofs/dev-ioctl.c 				 struct autofs_sb_info *sbi,
sbi               321 fs/autofs/dev-ioctl.c 	return autofs_wait_release(sbi, token, status);
sbi               337 fs/autofs/dev-ioctl.c 				      struct autofs_sb_info *sbi,
sbi               349 fs/autofs/dev-ioctl.c 	mutex_lock(&sbi->wq_mutex);
sbi               350 fs/autofs/dev-ioctl.c 	if (!(sbi->flags & AUTOFS_SBI_CATATONIC)) {
sbi               351 fs/autofs/dev-ioctl.c 		mutex_unlock(&sbi->wq_mutex);
sbi               358 fs/autofs/dev-ioctl.c 		if (ns_of_pid(new_pid) != ns_of_pid(sbi->oz_pgrp)) {
sbi               374 fs/autofs/dev-ioctl.c 		swap(sbi->oz_pgrp, new_pid);
sbi               375 fs/autofs/dev-ioctl.c 		sbi->pipefd = pipefd;
sbi               376 fs/autofs/dev-ioctl.c 		sbi->pipe = pipe;
sbi               377 fs/autofs/dev-ioctl.c 		sbi->flags &= ~AUTOFS_SBI_CATATONIC;
sbi               381 fs/autofs/dev-ioctl.c 	mutex_unlock(&sbi->wq_mutex);
sbi               390 fs/autofs/dev-ioctl.c 				      struct autofs_sb_info *sbi,
sbi               393 fs/autofs/dev-ioctl.c 	autofs_catatonic_mode(sbi);
sbi               399 fs/autofs/dev-ioctl.c 				    struct autofs_sb_info *sbi,
sbi               405 fs/autofs/dev-ioctl.c 	param->timeout.timeout = sbi->exp_timeout / HZ;
sbi               406 fs/autofs/dev-ioctl.c 	sbi->exp_timeout = timeout * HZ;
sbi               419 fs/autofs/dev-ioctl.c 				      struct autofs_sb_info *sbi,
sbi               429 fs/autofs/dev-ioctl.c 	devid = sbi->sb->s_dev;
sbi               441 fs/autofs/dev-ioctl.c 		spin_lock(&sbi->fs_lock);
sbi               446 fs/autofs/dev-ioctl.c 		spin_unlock(&sbi->fs_lock);
sbi               458 fs/autofs/dev-ioctl.c 				   struct autofs_sb_info *sbi,
sbi               467 fs/autofs/dev-ioctl.c 	return autofs_do_expire_multi(sbi->sb, mnt, sbi, how);
sbi               472 fs/autofs/dev-ioctl.c 				      struct autofs_sb_info *sbi,
sbi               503 fs/autofs/dev-ioctl.c 					 struct autofs_sb_info *sbi,
sbi               536 fs/autofs/dev-ioctl.c 		dev_t dev = sbi->sb->s_dev;
sbi               593 fs/autofs/dev-ioctl.c 	struct autofs_sb_info *sbi;
sbi               631 fs/autofs/dev-ioctl.c 	sbi = NULL;
sbi               658 fs/autofs/dev-ioctl.c 		sbi = autofs_sbi(sb);
sbi               664 fs/autofs/dev-ioctl.c 		if (!autofs_oz_mode(sbi) &&
sbi               672 fs/autofs/dev-ioctl.c 	err = fn(fp, sbi, param);
sbi                44 fs/autofs/expire.c 		struct autofs_sb_info *sbi = autofs_sbi(path.dentry->d_sb);
sbi                47 fs/autofs/expire.c 		if (autofs_type_indirect(sbi->type))
sbi               100 fs/autofs/expire.c 	struct autofs_sb_info *sbi = autofs_sbi(root->d_sb);
sbi               103 fs/autofs/expire.c 	spin_lock(&sbi->lookup_lock);
sbi               107 fs/autofs/expire.c 	spin_unlock(&sbi->lookup_lock);
sbi               118 fs/autofs/expire.c 	struct autofs_sb_info *sbi = autofs_sbi(root->d_sb);
sbi               124 fs/autofs/expire.c 	spin_lock(&sbi->lookup_lock);
sbi               139 fs/autofs/expire.c 	spin_unlock(&sbi->lookup_lock);
sbi               276 fs/autofs/expire.c 					   struct autofs_sb_info *sbi,
sbi               286 fs/autofs/expire.c 	timeout = sbi->exp_timeout;
sbi               289 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               293 fs/autofs/expire.c 			spin_unlock(&sbi->fs_lock);
sbi               297 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               300 fs/autofs/expire.c 			spin_lock(&sbi->fs_lock);
sbi               303 fs/autofs/expire.c 			spin_unlock(&sbi->fs_lock);
sbi               306 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               308 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               422 fs/autofs/expire.c 					     struct autofs_sb_info *sbi,
sbi               435 fs/autofs/expire.c 	timeout = sbi->exp_timeout;
sbi               439 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               442 fs/autofs/expire.c 			spin_unlock(&sbi->fs_lock);
sbi               445 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               451 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               454 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               470 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               473 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               475 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               485 fs/autofs/expire.c 	spin_unlock(&sbi->fs_lock);
sbi               492 fs/autofs/expire.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               504 fs/autofs/expire.c 	spin_lock(&sbi->fs_lock);
sbi               507 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               516 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               520 fs/autofs/expire.c 		status = autofs_wait(sbi, path, NFY_NONE);
sbi               530 fs/autofs/expire.c 	spin_unlock(&sbi->fs_lock);
sbi               538 fs/autofs/expire.c 		      struct autofs_sb_info *sbi,
sbi               548 fs/autofs/expire.c 	pkt.hdr.proto_version = sbi->version;
sbi               551 fs/autofs/expire.c 	dentry = autofs_expire_indirect(sb, mnt, sbi, 0);
sbi               562 fs/autofs/expire.c 	spin_lock(&sbi->fs_lock);
sbi               568 fs/autofs/expire.c 	spin_unlock(&sbi->fs_lock);
sbi               576 fs/autofs/expire.c 			   struct autofs_sb_info *sbi, unsigned int how)
sbi               581 fs/autofs/expire.c 	if (autofs_type_trigger(sbi->type))
sbi               582 fs/autofs/expire.c 		dentry = autofs_expire_direct(sb, mnt, sbi, how);
sbi               584 fs/autofs/expire.c 		dentry = autofs_expire_indirect(sb, mnt, sbi, how);
sbi               593 fs/autofs/expire.c 		ret = autofs_wait(sbi, &path, NFY_EXPIRE);
sbi               595 fs/autofs/expire.c 		spin_lock(&sbi->fs_lock);
sbi               600 fs/autofs/expire.c 		spin_unlock(&sbi->fs_lock);
sbi               612 fs/autofs/expire.c 			struct autofs_sb_info *sbi, int __user *arg)
sbi               619 fs/autofs/expire.c 	return autofs_do_expire_multi(sb, mnt, sbi, how);
sbi                13 fs/autofs/inode.c struct autofs_info *autofs_new_ino(struct autofs_sb_info *sbi)
sbi                22 fs/autofs/inode.c 		ino->sbi = sbi;
sbi                41 fs/autofs/inode.c 	struct autofs_sb_info *sbi = autofs_sbi(sb);
sbi                49 fs/autofs/inode.c 	if (sbi) {
sbi                51 fs/autofs/inode.c 		autofs_catatonic_mode(sbi);
sbi                52 fs/autofs/inode.c 		put_pid(sbi->oz_pgrp);
sbi                57 fs/autofs/inode.c 	if (sbi)
sbi                58 fs/autofs/inode.c 		kfree_rcu(sbi, rcu);
sbi                63 fs/autofs/inode.c 	struct autofs_sb_info *sbi = autofs_sbi(root->d_sb);
sbi                66 fs/autofs/inode.c 	if (!sbi)
sbi                69 fs/autofs/inode.c 	seq_printf(m, ",fd=%d", sbi->pipefd);
sbi                76 fs/autofs/inode.c 	seq_printf(m, ",pgrp=%d", pid_vnr(sbi->oz_pgrp));
sbi                77 fs/autofs/inode.c 	seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ);
sbi                78 fs/autofs/inode.c 	seq_printf(m, ",minproto=%d", sbi->min_proto);
sbi                79 fs/autofs/inode.c 	seq_printf(m, ",maxproto=%d", sbi->max_proto);
sbi                81 fs/autofs/inode.c 	if (autofs_type_offset(sbi->type))
sbi                83 fs/autofs/inode.c 	else if (autofs_type_direct(sbi->type))
sbi                87 fs/autofs/inode.c 	if (sbi->flags & AUTOFS_SBI_STRICTEXPIRE)
sbi                89 fs/autofs/inode.c 	if (sbi->flags & AUTOFS_SBI_IGNORE)
sbi                92 fs/autofs/inode.c 	if (sbi->pipe)
sbi                93 fs/autofs/inode.c 		seq_printf(m, ",pipe_ino=%ld", file_inode(sbi->pipe)->i_ino);
sbi               133 fs/autofs/inode.c 			 struct autofs_sb_info *sbi)
sbi               145 fs/autofs/inode.c 	sbi->min_proto = AUTOFS_MIN_PROTO_VERSION;
sbi               146 fs/autofs/inode.c 	sbi->max_proto = AUTOFS_MAX_PROTO_VERSION;
sbi               148 fs/autofs/inode.c 	sbi->pipefd = -1;
sbi               164 fs/autofs/inode.c 			sbi->pipefd = pipefd;
sbi               191 fs/autofs/inode.c 			sbi->min_proto = option;
sbi               196 fs/autofs/inode.c 			sbi->max_proto = option;
sbi               199 fs/autofs/inode.c 			set_autofs_type_indirect(&sbi->type);
sbi               202 fs/autofs/inode.c 			set_autofs_type_direct(&sbi->type);
sbi               205 fs/autofs/inode.c 			set_autofs_type_offset(&sbi->type);
sbi               208 fs/autofs/inode.c 			sbi->flags |= AUTOFS_SBI_STRICTEXPIRE;
sbi               211 fs/autofs/inode.c 			sbi->flags |= AUTOFS_SBI_IGNORE;
sbi               217 fs/autofs/inode.c 	return (sbi->pipefd < 0);
sbi               225 fs/autofs/inode.c 	struct autofs_sb_info *sbi;
sbi               231 fs/autofs/inode.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               232 fs/autofs/inode.c 	if (!sbi)
sbi               234 fs/autofs/inode.c 	pr_debug("starting up, sbi = %p\n", sbi);
sbi               236 fs/autofs/inode.c 	s->s_fs_info = sbi;
sbi               237 fs/autofs/inode.c 	sbi->magic = AUTOFS_SBI_MAGIC;
sbi               238 fs/autofs/inode.c 	sbi->pipefd = -1;
sbi               239 fs/autofs/inode.c 	sbi->pipe = NULL;
sbi               240 fs/autofs/inode.c 	sbi->exp_timeout = 0;
sbi               241 fs/autofs/inode.c 	sbi->oz_pgrp = NULL;
sbi               242 fs/autofs/inode.c 	sbi->sb = s;
sbi               243 fs/autofs/inode.c 	sbi->version = 0;
sbi               244 fs/autofs/inode.c 	sbi->sub_version = 0;
sbi               245 fs/autofs/inode.c 	sbi->flags = AUTOFS_SBI_CATATONIC;
sbi               246 fs/autofs/inode.c 	set_autofs_type_indirect(&sbi->type);
sbi               247 fs/autofs/inode.c 	sbi->min_proto = 0;
sbi               248 fs/autofs/inode.c 	sbi->max_proto = 0;
sbi               249 fs/autofs/inode.c 	mutex_init(&sbi->wq_mutex);
sbi               250 fs/autofs/inode.c 	mutex_init(&sbi->pipe_mutex);
sbi               251 fs/autofs/inode.c 	spin_lock_init(&sbi->fs_lock);
sbi               252 fs/autofs/inode.c 	sbi->queues = NULL;
sbi               253 fs/autofs/inode.c 	spin_lock_init(&sbi->lookup_lock);
sbi               254 fs/autofs/inode.c 	INIT_LIST_HEAD(&sbi->active_list);
sbi               255 fs/autofs/inode.c 	INIT_LIST_HEAD(&sbi->expiring_list);
sbi               266 fs/autofs/inode.c 	ino = autofs_new_ino(sbi);
sbi               282 fs/autofs/inode.c 	if (parse_options(data, root_inode, &pgrp, &pgrp_set, sbi)) {
sbi               288 fs/autofs/inode.c 	if (sbi->max_proto < AUTOFS_MIN_PROTO_VERSION ||
sbi               289 fs/autofs/inode.c 	    sbi->min_proto > AUTOFS_MAX_PROTO_VERSION) {
sbi               292 fs/autofs/inode.c 		       sbi->min_proto, sbi->max_proto,
sbi               298 fs/autofs/inode.c 	if (sbi->max_proto > AUTOFS_MAX_PROTO_VERSION)
sbi               299 fs/autofs/inode.c 		sbi->version = AUTOFS_MAX_PROTO_VERSION;
sbi               301 fs/autofs/inode.c 		sbi->version = sbi->max_proto;
sbi               302 fs/autofs/inode.c 	sbi->sub_version = AUTOFS_PROTO_SUBVERSION;
sbi               305 fs/autofs/inode.c 		sbi->oz_pgrp = find_get_pid(pgrp);
sbi               306 fs/autofs/inode.c 		if (!sbi->oz_pgrp) {
sbi               312 fs/autofs/inode.c 		sbi->oz_pgrp = get_task_pid(current, PIDTYPE_PGID);
sbi               315 fs/autofs/inode.c 	if (autofs_type_trigger(sbi->type))
sbi               322 fs/autofs/inode.c 		 sbi->pipefd, pid_nr(sbi->oz_pgrp));
sbi               323 fs/autofs/inode.c 	pipe = fget(sbi->pipefd);
sbi               332 fs/autofs/inode.c 	sbi->pipe = pipe;
sbi               333 fs/autofs/inode.c 	sbi->flags &= ~AUTOFS_SBI_CATATONIC;
sbi               348 fs/autofs/inode.c 	put_pid(sbi->oz_pgrp);
sbi               355 fs/autofs/inode.c 	kfree(sbi);
sbi                65 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi                69 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi                71 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi                77 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi                81 fs/autofs/root.c 	if (autofs_oz_mode(sbi))
sbi                93 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi                95 fs/autofs/root.c 		spin_unlock(&sbi->lookup_lock);
sbi                98 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi               107 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(de->d_sb);
sbi               114 fs/autofs/root.c 	if (sbi) {
sbi               115 fs/autofs/root.c 		spin_lock(&sbi->lookup_lock);
sbi               120 fs/autofs/root.c 		spin_unlock(&sbi->lookup_lock);
sbi               128 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               136 fs/autofs/root.c 	head = &sbi->active_list;
sbi               139 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi               169 fs/autofs/root.c 			spin_unlock(&sbi->lookup_lock);
sbi               175 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi               183 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               191 fs/autofs/root.c 	head = &sbi->expiring_list;
sbi               194 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi               201 fs/autofs/root.c 			spin_unlock(&sbi->lookup_lock);
sbi               229 fs/autofs/root.c 			spin_unlock(&sbi->lookup_lock);
sbi               235 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi               242 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(path->dentry->d_sb);
sbi               250 fs/autofs/root.c 		status = autofs_wait(sbi, path, NFY_MOUNT);
sbi               255 fs/autofs/root.c 	if (!(sbi->flags & AUTOFS_SBI_STRICTEXPIRE))
sbi               287 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               293 fs/autofs/root.c 	if (autofs_type_indirect(sbi->type) && d_unhashed(dentry)) {
sbi               312 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               319 fs/autofs/root.c 	if (autofs_oz_mode(sbi))
sbi               335 fs/autofs/root.c 	spin_lock(&sbi->fs_lock);
sbi               337 fs/autofs/root.c 		spin_unlock(&sbi->fs_lock);
sbi               350 fs/autofs/root.c 		spin_unlock(&sbi->fs_lock);
sbi               366 fs/autofs/root.c 		if (sbi->version > 4) {
sbi               368 fs/autofs/root.c 				spin_unlock(&sbi->fs_lock);
sbi               373 fs/autofs/root.c 				spin_unlock(&sbi->fs_lock);
sbi               378 fs/autofs/root.c 		spin_unlock(&sbi->fs_lock);
sbi               380 fs/autofs/root.c 		spin_lock(&sbi->fs_lock);
sbi               383 fs/autofs/root.c 			spin_unlock(&sbi->fs_lock);
sbi               387 fs/autofs/root.c 	spin_unlock(&sbi->fs_lock);
sbi               400 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb);
sbi               407 fs/autofs/root.c 	if (autofs_oz_mode(sbi)) {
sbi               449 fs/autofs/root.c 	spin_lock(&sbi->fs_lock);
sbi               468 fs/autofs/root.c 	spin_unlock(&sbi->fs_lock);
sbi               477 fs/autofs/root.c 	struct autofs_sb_info *sbi;
sbi               487 fs/autofs/root.c 	sbi = autofs_sbi(dir->i_sb);
sbi               491 fs/autofs/root.c 		 sbi->flags & AUTOFS_SBI_CATATONIC,
sbi               492 fs/autofs/root.c 		 autofs_oz_mode(sbi));
sbi               504 fs/autofs/root.c 		if (!autofs_oz_mode(sbi) && !IS_ROOT(dentry->d_parent))
sbi               507 fs/autofs/root.c 		ino = autofs_new_ino(sbi);
sbi               511 fs/autofs/root.c 		spin_lock(&sbi->lookup_lock);
sbi               515 fs/autofs/root.c 		    autofs_type_indirect(sbi->type))
sbi               520 fs/autofs/root.c 		list_add(&ino->active, &sbi->active_list);
sbi               521 fs/autofs/root.c 		spin_unlock(&sbi->lookup_lock);
sbi               531 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dir->i_sb);
sbi               540 fs/autofs/root.c 	if (!autofs_oz_mode(sbi))
sbi               547 fs/autofs/root.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               599 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dir->i_sb);
sbi               603 fs/autofs/root.c 	if (!autofs_oz_mode(sbi))
sbi               610 fs/autofs/root.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               625 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi               628 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi               685 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dir->i_sb);
sbi               691 fs/autofs/root.c 	if (!autofs_oz_mode(sbi))
sbi               698 fs/autofs/root.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               701 fs/autofs/root.c 	spin_lock(&sbi->lookup_lock);
sbi               703 fs/autofs/root.c 		spin_unlock(&sbi->lookup_lock);
sbi               708 fs/autofs/root.c 	spin_unlock(&sbi->lookup_lock);
sbi               710 fs/autofs/root.c 	if (sbi->version < 5)
sbi               731 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(dir->i_sb);
sbi               736 fs/autofs/root.c 	if (!autofs_oz_mode(sbi))
sbi               743 fs/autofs/root.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               759 fs/autofs/root.c 	if (sbi->version < 5)
sbi               775 fs/autofs/root.c static inline int autofs_compat_get_set_timeout(struct autofs_sb_info *sbi,
sbi               785 fs/autofs/root.c 	rv = put_user(sbi->exp_timeout/HZ, p);
sbi               790 fs/autofs/root.c 		sbi->exp_timeout = 0;
sbi               792 fs/autofs/root.c 		sbi->exp_timeout = ntimeout * HZ;
sbi               800 fs/autofs/root.c static inline int autofs_get_set_timeout(struct autofs_sb_info *sbi,
sbi               810 fs/autofs/root.c 	rv = put_user(sbi->exp_timeout/HZ, p);
sbi               815 fs/autofs/root.c 		sbi->exp_timeout = 0;
sbi               817 fs/autofs/root.c 		sbi->exp_timeout = ntimeout * HZ;
sbi               825 fs/autofs/root.c static inline int autofs_get_protover(struct autofs_sb_info *sbi,
sbi               828 fs/autofs/root.c 	return put_user(sbi->version, p);
sbi               832 fs/autofs/root.c static inline int autofs_get_protosubver(struct autofs_sb_info *sbi,
sbi               835 fs/autofs/root.c 	return put_user(sbi->sub_version, p);
sbi               873 fs/autofs/root.c 	struct autofs_sb_info *sbi = autofs_sbi(inode->i_sb);
sbi               877 fs/autofs/root.c 		 cmd, arg, sbi, task_pgrp_nr(current));
sbi               883 fs/autofs/root.c 	if (!autofs_oz_mode(sbi) && !capable(CAP_SYS_ADMIN))
sbi               888 fs/autofs/root.c 		return autofs_wait_release(sbi, (autofs_wqt_t) arg, 0);
sbi               890 fs/autofs/root.c 		return autofs_wait_release(sbi, (autofs_wqt_t) arg, -ENOENT);
sbi               892 fs/autofs/root.c 		autofs_catatonic_mode(sbi);
sbi               895 fs/autofs/root.c 		return autofs_get_protover(sbi, p);
sbi               897 fs/autofs/root.c 		return autofs_get_protosubver(sbi, p);
sbi               899 fs/autofs/root.c 		return autofs_get_set_timeout(sbi, p);
sbi               902 fs/autofs/root.c 		return autofs_compat_get_set_timeout(sbi, p);
sbi               910 fs/autofs/root.c 		return autofs_expire_run(inode->i_sb, filp->f_path.mnt, sbi, p);
sbi               914 fs/autofs/root.c 					   filp->f_path.mnt, sbi, p);
sbi                12 fs/autofs/symlink.c 	struct autofs_sb_info *sbi;
sbi                17 fs/autofs/symlink.c 	sbi = autofs_sbi(dentry->d_sb);
sbi                19 fs/autofs/symlink.c 	if (ino && !autofs_oz_mode(sbi))
sbi                15 fs/autofs/waitq.c void autofs_catatonic_mode(struct autofs_sb_info *sbi)
sbi                19 fs/autofs/waitq.c 	mutex_lock(&sbi->wq_mutex);
sbi                20 fs/autofs/waitq.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC) {
sbi                21 fs/autofs/waitq.c 		mutex_unlock(&sbi->wq_mutex);
sbi                27 fs/autofs/waitq.c 	sbi->flags |= AUTOFS_SBI_CATATONIC;
sbi                28 fs/autofs/waitq.c 	wq = sbi->queues;
sbi                29 fs/autofs/waitq.c 	sbi->queues = NULL;	/* Erase all wait queues */
sbi                39 fs/autofs/waitq.c 	fput(sbi->pipe);	/* Close the pipe */
sbi                40 fs/autofs/waitq.c 	sbi->pipe = NULL;
sbi                41 fs/autofs/waitq.c 	sbi->pipefd = -1;
sbi                42 fs/autofs/waitq.c 	mutex_unlock(&sbi->wq_mutex);
sbi                45 fs/autofs/waitq.c static int autofs_write(struct autofs_sb_info *sbi,
sbi                54 fs/autofs/waitq.c 	mutex_lock(&sbi->pipe_mutex);
sbi                62 fs/autofs/waitq.c 	mutex_unlock(&sbi->pipe_mutex);
sbi                78 fs/autofs/waitq.c static void autofs_notify_daemon(struct autofs_sb_info *sbi,
sbi                97 fs/autofs/waitq.c 	pkt.hdr.proto_version = sbi->version;
sbi               137 fs/autofs/waitq.c 		struct user_namespace *user_ns = sbi->pipe->f_cred->user_ns;
sbi               155 fs/autofs/waitq.c 		mutex_unlock(&sbi->wq_mutex);
sbi               159 fs/autofs/waitq.c 	pipe = get_file(sbi->pipe);
sbi               161 fs/autofs/waitq.c 	mutex_unlock(&sbi->wq_mutex);
sbi               163 fs/autofs/waitq.c 	switch (ret = autofs_write(sbi, pipe, &pkt, pktsz)) {
sbi               169 fs/autofs/waitq.c 		autofs_wait_release(sbi, wq->wait_queue_token, ret);
sbi               172 fs/autofs/waitq.c 		autofs_catatonic_mode(sbi);
sbi               178 fs/autofs/waitq.c static int autofs_getpath(struct autofs_sb_info *sbi,
sbi               181 fs/autofs/waitq.c 	struct dentry *root = sbi->sb->s_root;
sbi               194 fs/autofs/waitq.c 	spin_lock(&sbi->fs_lock);
sbi               199 fs/autofs/waitq.c 		spin_unlock(&sbi->fs_lock);
sbi               215 fs/autofs/waitq.c 	spin_unlock(&sbi->fs_lock);
sbi               224 fs/autofs/waitq.c autofs_find_wait(struct autofs_sb_info *sbi, const struct qstr *qstr)
sbi               228 fs/autofs/waitq.c 	for (wq = sbi->queues; wq; wq = wq->next) {
sbi               247 fs/autofs/waitq.c 			    struct autofs_sb_info *sbi,
sbi               255 fs/autofs/waitq.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               259 fs/autofs/waitq.c 	wq = autofs_find_wait(sbi, qstr);
sbi               285 fs/autofs/waitq.c 			mutex_unlock(&sbi->wq_mutex);
sbi               287 fs/autofs/waitq.c 			if (mutex_lock_interruptible(&sbi->wq_mutex))
sbi               290 fs/autofs/waitq.c 			if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               293 fs/autofs/waitq.c 			wq = autofs_find_wait(sbi, qstr);
sbi               347 fs/autofs/waitq.c int autofs_wait(struct autofs_sb_info *sbi,
sbi               359 fs/autofs/waitq.c 	if (sbi->flags & AUTOFS_SBI_CATATONIC)
sbi               367 fs/autofs/waitq.c 	pid = task_pid_nr_ns(current, ns_of_pid(sbi->oz_pgrp));
sbi               368 fs/autofs/waitq.c 	tgid = task_tgid_nr_ns(current, ns_of_pid(sbi->oz_pgrp));
sbi               381 fs/autofs/waitq.c 		if (autofs_type_trigger(sbi->type))
sbi               392 fs/autofs/waitq.c 	if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
sbi               395 fs/autofs/waitq.c 		qstr.len = autofs_getpath(sbi, dentry, name);
sbi               404 fs/autofs/waitq.c 	if (mutex_lock_interruptible(&sbi->wq_mutex)) {
sbi               409 fs/autofs/waitq.c 	ret = validate_request(&wq, sbi, &qstr, path, notify);
sbi               412 fs/autofs/waitq.c 			mutex_unlock(&sbi->wq_mutex);
sbi               422 fs/autofs/waitq.c 			mutex_unlock(&sbi->wq_mutex);
sbi               429 fs/autofs/waitq.c 		wq->next = sbi->queues;
sbi               430 fs/autofs/waitq.c 		sbi->queues = wq;
sbi               433 fs/autofs/waitq.c 		wq->dev = autofs_get_dev(sbi);
sbi               434 fs/autofs/waitq.c 		wq->ino = autofs_get_ino(sbi);
sbi               442 fs/autofs/waitq.c 		if (sbi->version < 5) {
sbi               449 fs/autofs/waitq.c 				type = autofs_type_trigger(sbi->type) ?
sbi               453 fs/autofs/waitq.c 				type = autofs_type_trigger(sbi->type) ?
sbi               465 fs/autofs/waitq.c 		autofs_notify_daemon(sbi, wq, type);
sbi               471 fs/autofs/waitq.c 		mutex_unlock(&sbi->wq_mutex);
sbi               506 fs/autofs/waitq.c 			spin_lock(&sbi->fs_lock);
sbi               509 fs/autofs/waitq.c 			spin_unlock(&sbi->fs_lock);
sbi               517 fs/autofs/waitq.c 	mutex_lock(&sbi->wq_mutex);
sbi               520 fs/autofs/waitq.c 	mutex_unlock(&sbi->wq_mutex);
sbi               526 fs/autofs/waitq.c int autofs_wait_release(struct autofs_sb_info *sbi,
sbi               531 fs/autofs/waitq.c 	mutex_lock(&sbi->wq_mutex);
sbi               532 fs/autofs/waitq.c 	for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) {
sbi               538 fs/autofs/waitq.c 		mutex_unlock(&sbi->wq_mutex);
sbi               549 fs/autofs/waitq.c 	mutex_unlock(&sbi->wq_mutex);
sbi              5158 fs/cifs/connect.c 	struct cifs_sb_info *sbi = container_of(p, struct cifs_sb_info, rcu);
sbi              5159 fs/cifs/connect.c 	unload_nls(sbi->local_nls);
sbi              5160 fs/cifs/connect.c 	kfree(sbi);
sbi               266 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(sb);
sbi               270 fs/cramfs/inode.c 	if (len > sbi->size || offset > sbi->size - len)
sbi               272 fs/cramfs/inode.c 	return sbi->linear_virt_addr + offset;
sbi               282 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(sb);
sbi               284 fs/cramfs/inode.c 	if (IS_ENABLED(CONFIG_CRAMFS_MTD) && sbi->linear_virt_addr)
sbi               299 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(inode->i_sb);
sbi               308 fs/cramfs/inode.c 	blockptrs = (u32 *)(sbi->linear_virt_addr + OFFSET(inode) + pgoff * 4);
sbi               340 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(inode->i_sb);
sbi               348 fs/cramfs/inode.c 	blockptrs = (u32 *)(sbi->linear_virt_addr + OFFSET(inode));
sbi               351 fs/cramfs/inode.c 	tail_data = sbi->linear_virt_addr + blockaddr + partial;
sbi               358 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(inode->i_sb);
sbi               388 fs/cramfs/inode.c 	address = sbi->linear_phys_addr + offset;
sbi               460 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(sb);
sbi               471 fs/cramfs/inode.c 	addr = sbi->linear_phys_addr + offset;
sbi               498 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(sb);
sbi               501 fs/cramfs/inode.c 		if (sbi && sbi->mtd_point_size)
sbi               502 fs/cramfs/inode.c 			mtd_unpoint(sb->s_mtd, 0, sbi->mtd_point_size);
sbi               507 fs/cramfs/inode.c 	kfree(sbi);
sbi               520 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi = CRAMFS_SB(sb);
sbi               525 fs/cramfs/inode.c 	sbi->size = PAGE_SIZE;
sbi               572 fs/cramfs/inode.c 		sbi->size = super->size;
sbi               573 fs/cramfs/inode.c 		sbi->blocks = super->fsid.blocks;
sbi               574 fs/cramfs/inode.c 		sbi->files = super->fsid.files;
sbi               576 fs/cramfs/inode.c 		sbi->size = 1<<28;
sbi               577 fs/cramfs/inode.c 		sbi->blocks = 0;
sbi               578 fs/cramfs/inode.c 		sbi->files = 0;
sbi               580 fs/cramfs/inode.c 	sbi->magic = super->magic;
sbi               581 fs/cramfs/inode.c 	sbi->flags = super->flags;
sbi               616 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi;
sbi               620 fs/cramfs/inode.c 	sbi = kzalloc(sizeof(struct cramfs_sb_info), GFP_KERNEL);
sbi               621 fs/cramfs/inode.c 	if (!sbi)
sbi               623 fs/cramfs/inode.c 	sb->s_fs_info = sbi;
sbi               637 fs/cramfs/inode.c 	struct cramfs_sb_info *sbi;
sbi               641 fs/cramfs/inode.c 	sbi = kzalloc(sizeof(struct cramfs_sb_info), GFP_KERNEL);
sbi               642 fs/cramfs/inode.c 	if (!sbi)
sbi               644 fs/cramfs/inode.c 	sb->s_fs_info = sbi;
sbi               647 fs/cramfs/inode.c 	err = mtd_point(sb->s_mtd, 0, PAGE_SIZE, &sbi->mtd_point_size,
sbi               648 fs/cramfs/inode.c 			&sbi->linear_virt_addr, &sbi->linear_phys_addr);
sbi               649 fs/cramfs/inode.c 	if (err || sbi->mtd_point_size != PAGE_SIZE) {
sbi               656 fs/cramfs/inode.c 		&sbi->linear_phys_addr);
sbi               663 fs/cramfs/inode.c 		sb->s_mtd->name, sbi->size/1024);
sbi               665 fs/cramfs/inode.c 	err = mtd_point(sb->s_mtd, 0, sbi->size, &sbi->mtd_point_size,
sbi               666 fs/cramfs/inode.c 			&sbi->linear_virt_addr, &sbi->linear_phys_addr);
sbi               667 fs/cramfs/inode.c 	if (err || sbi->mtd_point_size != sbi->size) {
sbi               242 fs/ecryptfs/main.c static int ecryptfs_parse_options(struct ecryptfs_sb_info *sbi, char *options,
sbi               255 fs/ecryptfs/main.c 		&sbi->mount_crypt_stat;
sbi               480 fs/ecryptfs/main.c 	struct ecryptfs_sb_info *sbi;
sbi               489 fs/ecryptfs/main.c 	sbi = kmem_cache_zalloc(ecryptfs_sb_info_cache, GFP_KERNEL);
sbi               490 fs/ecryptfs/main.c 	if (!sbi) {
sbi               495 fs/ecryptfs/main.c 	rc = ecryptfs_parse_options(sbi, raw_data, &check_ruid);
sbi               500 fs/ecryptfs/main.c 	mount_crypt_stat = &sbi->mount_crypt_stat;
sbi               512 fs/ecryptfs/main.c 	ecryptfs_set_superblock_private(s, sbi);
sbi               515 fs/ecryptfs/main.c 	sbi = NULL;
sbi               599 fs/ecryptfs/main.c 	if (sbi) {
sbi               600 fs/ecryptfs/main.c 		ecryptfs_destroy_mount_crypt_stat(&sbi->mount_crypt_stat);
sbi               601 fs/ecryptfs/main.c 		kmem_cache_free(ecryptfs_sb_info_cache, sbi);
sbi                32 fs/efs/super.c 	struct efs_sb_info *sbi = SUPER_INFO(s);
sbi                34 fs/efs/super.c 	kfree(sbi);
sbi               331 fs/efs/super.c 	struct efs_sb_info *sbi = SUPER_INFO(sb);
sbi               336 fs/efs/super.c 	buf->f_blocks  = sbi->total_groups *	/* total data blocks */
sbi               337 fs/efs/super.c 			(sbi->group_size - sbi->inode_blocks);
sbi               338 fs/efs/super.c 	buf->f_bfree   = sbi->data_free;	/* free data blocks */
sbi               339 fs/efs/super.c 	buf->f_bavail  = sbi->data_free;	/* free blocks for non-root */
sbi               340 fs/efs/super.c 	buf->f_files   = sbi->total_groups *	/* total inodes */
sbi               341 fs/efs/super.c 			sbi->inode_blocks *
sbi               343 fs/efs/super.c 	buf->f_ffree   = sbi->inode_free;	/* free inodes */
sbi                78 fs/erofs/data.c 		struct erofs_sb_info *sbi = EROFS_SB(inode->i_sb);
sbi                80 fs/erofs/data.c 		map->m_pa = iloc(sbi, vi->nid) + vi->inode_isize +
sbi                19 fs/erofs/inode.c 	struct erofs_sb_info *sbi = EROFS_SB(inode->i_sb);
sbi               102 fs/erofs/inode.c 			sbi->build_time;
sbi               104 fs/erofs/inode.c 			sbi->build_time_nsec;
sbi               100 fs/erofs/internal.h #define clear_opt(sbi, option)	((sbi)->mount_opt &= ~EROFS_MOUNT_##option)
sbi               101 fs/erofs/internal.h #define set_opt(sbi, option)	((sbi)->mount_opt |= EROFS_MOUNT_##option)
sbi               102 fs/erofs/internal.h #define test_opt(sbi, option)	((sbi)->mount_opt & EROFS_MOUNT_##option)
sbi               208 fs/erofs/internal.h static inline erofs_off_t iloc(struct erofs_sb_info *sbi, erofs_nid_t nid)
sbi               210 fs/erofs/internal.h 	return blknr_to_addr(sbi->meta_blkaddr) + (nid << sbi->islotbits);
sbi               415 fs/erofs/internal.h int erofs_try_to_free_all_cached_pages(struct erofs_sb_info *sbi,
sbi               100 fs/erofs/super.c 	struct erofs_sb_info *sbi;
sbi               113 fs/erofs/super.c 	sbi = EROFS_SB(sb);
sbi               135 fs/erofs/super.c 	sbi->blocks = le32_to_cpu(dsb->blocks);
sbi               136 fs/erofs/super.c 	sbi->meta_blkaddr = le32_to_cpu(dsb->meta_blkaddr);
sbi               138 fs/erofs/super.c 	sbi->xattr_blkaddr = le32_to_cpu(dsb->xattr_blkaddr);
sbi               140 fs/erofs/super.c 	sbi->islotbits = ilog2(sizeof(struct erofs_inode_compact));
sbi               141 fs/erofs/super.c 	sbi->root_nid = le16_to_cpu(dsb->root_nid);
sbi               142 fs/erofs/super.c 	sbi->inos = le64_to_cpu(dsb->inos);
sbi               144 fs/erofs/super.c 	sbi->build_time = le64_to_cpu(dsb->build_time);
sbi               145 fs/erofs/super.c 	sbi->build_time_nsec = le32_to_cpu(dsb->build_time_nsec);
sbi               149 fs/erofs/super.c 	ret = strscpy(sbi->volume_name, dsb->volume_name,
sbi               167 fs/erofs/super.c 	struct erofs_sb_info *sbi = EROFS_SB(sb);
sbi               177 fs/erofs/super.c 		sbi->cache_strategy = EROFS_ZIP_CACHE_DISABLED;
sbi               179 fs/erofs/super.c 		sbi->cache_strategy = EROFS_ZIP_CACHE_READAHEAD;
sbi               181 fs/erofs/super.c 		sbi->cache_strategy = EROFS_ZIP_CACHE_READAROUND;
sbi               199 fs/erofs/super.c static void erofs_default_options(struct erofs_sb_info *sbi)
sbi               202 fs/erofs/super.c 	sbi->cache_strategy = EROFS_ZIP_CACHE_READAROUND;
sbi               203 fs/erofs/super.c 	sbi->max_sync_decompress_pages = 3;
sbi               206 fs/erofs/super.c 	set_opt(sbi, XATTR_USER);
sbi               209 fs/erofs/super.c 	set_opt(sbi, POSIX_ACL);
sbi               333 fs/erofs/super.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               345 fs/erofs/super.c 	sbi->managed_cache = inode;
sbi               355 fs/erofs/super.c 	struct erofs_sb_info *sbi;
sbi               365 fs/erofs/super.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               366 fs/erofs/super.c 	if (!sbi)
sbi               369 fs/erofs/super.c 	sb->s_fs_info = sbi;
sbi               384 fs/erofs/super.c 	erofs_default_options(sbi);
sbi               390 fs/erofs/super.c 	if (test_opt(sbi, POSIX_ACL))
sbi               396 fs/erofs/super.c 	INIT_RADIX_TREE(&sbi->workstn_tree, GFP_ATOMIC);
sbi               400 fs/erofs/super.c 	inode = erofs_iget(sb, ROOT_NID(sbi), true);
sbi               406 fs/erofs/super.c 			  ROOT_NID(sbi), inode->i_mode);
sbi               422 fs/erofs/super.c 		   (char *)data, ROOT_NID(sbi));
sbi               438 fs/erofs/super.c 	struct erofs_sb_info *sbi;
sbi               444 fs/erofs/super.c 	sbi = EROFS_SB(sb);
sbi               445 fs/erofs/super.c 	if (!sbi)
sbi               447 fs/erofs/super.c 	kfree(sbi);
sbi               454 fs/erofs/super.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               456 fs/erofs/super.c 	DBG_BUGON(!sbi);
sbi               460 fs/erofs/super.c 	iput(sbi->managed_cache);
sbi               461 fs/erofs/super.c 	sbi->managed_cache = NULL;
sbi               528 fs/erofs/super.c 	struct erofs_sb_info *sbi = EROFS_SB(sb);
sbi               533 fs/erofs/super.c 	buf->f_blocks = sbi->blocks;
sbi               537 fs/erofs/super.c 	buf->f_ffree = ULLONG_MAX - sbi->inos;
sbi               548 fs/erofs/super.c 	struct erofs_sb_info *sbi __maybe_unused = EROFS_SB(root->d_sb);
sbi               551 fs/erofs/super.c 	if (test_opt(sbi, XATTR_USER))
sbi               557 fs/erofs/super.c 	if (test_opt(sbi, POSIX_ACL))
sbi               563 fs/erofs/super.c 	if (sbi->cache_strategy == EROFS_ZIP_CACHE_DISABLED) {
sbi               565 fs/erofs/super.c 	} else if (sbi->cache_strategy == EROFS_ZIP_CACHE_READAHEAD) {
sbi               567 fs/erofs/super.c 	} else if (sbi->cache_strategy == EROFS_ZIP_CACHE_READAROUND) {
sbi               579 fs/erofs/super.c 	struct erofs_sb_info *sbi = EROFS_SB(sb);
sbi               580 fs/erofs/super.c 	unsigned int org_mnt_opt = sbi->mount_opt;
sbi               588 fs/erofs/super.c 	if (test_opt(sbi, POSIX_ACL))
sbi               596 fs/erofs/super.c 	sbi->mount_opt = org_mnt_opt;
sbi                64 fs/erofs/utils.c 	struct erofs_sb_info *sbi = EROFS_SB(sb);
sbi                69 fs/erofs/utils.c 	grp = radix_tree_lookup(&sbi->workstn_tree, index);
sbi                90 fs/erofs/utils.c 	struct erofs_sb_info *sbi;
sbi               103 fs/erofs/utils.c 	sbi = EROFS_SB(sb);
sbi               104 fs/erofs/utils.c 	xa_lock(&sbi->workstn_tree);
sbi               115 fs/erofs/utils.c 	err = radix_tree_insert(&sbi->workstn_tree, grp->index, grp);
sbi               123 fs/erofs/utils.c 	xa_unlock(&sbi->workstn_tree);
sbi               151 fs/erofs/utils.c static bool erofs_try_to_release_workgroup(struct erofs_sb_info *sbi,
sbi               169 fs/erofs/utils.c 	if (erofs_try_to_free_all_cached_pages(sbi, grp)) {
sbi               179 fs/erofs/utils.c 	DBG_BUGON(xa_untag_pointer(radix_tree_delete(&sbi->workstn_tree,
sbi               190 fs/erofs/utils.c static unsigned long erofs_shrink_workstation(struct erofs_sb_info *sbi,
sbi               200 fs/erofs/utils.c 	xa_lock(&sbi->workstn_tree);
sbi               202 fs/erofs/utils.c 	found = radix_tree_gang_lookup(&sbi->workstn_tree,
sbi               211 fs/erofs/utils.c 		if (!erofs_try_to_release_workgroup(sbi, grp, cleanup))
sbi               218 fs/erofs/utils.c 	xa_unlock(&sbi->workstn_tree);
sbi               234 fs/erofs/utils.c 	struct erofs_sb_info *sbi = EROFS_SB(sb);
sbi               236 fs/erofs/utils.c 	mutex_init(&sbi->umount_mutex);
sbi               239 fs/erofs/utils.c 	list_add(&sbi->list, &erofs_sb_list);
sbi               245 fs/erofs/utils.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               247 fs/erofs/utils.c 	mutex_lock(&sbi->umount_mutex);
sbi               248 fs/erofs/utils.c 	erofs_shrink_workstation(sbi, ~0UL, true);
sbi               251 fs/erofs/utils.c 	list_del(&sbi->list);
sbi               253 fs/erofs/utils.c 	mutex_unlock(&sbi->umount_mutex);
sbi               265 fs/erofs/utils.c 	struct erofs_sb_info *sbi;
sbi               280 fs/erofs/utils.c 		sbi = list_entry(p, struct erofs_sb_info, list);
sbi               286 fs/erofs/utils.c 		if (sbi->shrinker_run_no == run_no)
sbi               289 fs/erofs/utils.c 		if (!mutex_trylock(&sbi->umount_mutex)) {
sbi               295 fs/erofs/utils.c 		sbi->shrinker_run_no = run_no;
sbi               297 fs/erofs/utils.c 		freed += erofs_shrink_workstation(sbi, nr - freed, false);
sbi               307 fs/erofs/utils.c 		list_move_tail(&sbi->list, &erofs_sb_list);
sbi               308 fs/erofs/utils.c 		mutex_unlock(&sbi->umount_mutex);
sbi                46 fs/erofs/xattr.c 	struct erofs_sb_info *sbi;
sbi                88 fs/erofs/xattr.c 	sbi = EROFS_SB(sb);
sbi                89 fs/erofs/xattr.c 	it.blkaddr = erofs_blknr(iloc(sbi, vi->nid) + vi->inode_isize);
sbi                90 fs/erofs/xattr.c 	it.ofs = erofs_blkoff(iloc(sbi, vi->nid) + vi->inode_isize);
sbi               189 fs/erofs/xattr.c 	struct erofs_sb_info *const sbi = EROFS_SB(inode->i_sb);
sbi               200 fs/erofs/xattr.c 	it->blkaddr = erofs_blknr(iloc(sbi, vi->nid) + inline_xattr_ofs);
sbi               201 fs/erofs/xattr.c 	it->ofs = erofs_blkoff(iloc(sbi, vi->nid) + inline_xattr_ofs);
sbi               391 fs/erofs/xattr.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               397 fs/erofs/xattr.c 			xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]);
sbi               399 fs/erofs/xattr.c 		it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]);
sbi               468 fs/erofs/xattr.c 	struct erofs_sb_info *const sbi = EROFS_I_SB(inode);
sbi               472 fs/erofs/xattr.c 		if (!test_opt(sbi, XATTR_USER))
sbi               614 fs/erofs/xattr.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               620 fs/erofs/xattr.c 			xattrblock_addr(sbi, vi->xattr_shared_xattrs[i]);
sbi               622 fs/erofs/xattr.c 		it->it.ofs = xattrblock_offset(sbi, vi->xattr_shared_xattrs[i]);
sbi                23 fs/erofs/xattr.h static inline erofs_blk_t xattrblock_addr(struct erofs_sb_info *sbi,
sbi                27 fs/erofs/xattr.h 	return sbi->xattr_blkaddr +
sbi                34 fs/erofs/xattr.h static inline unsigned int xattrblock_offset(struct erofs_sb_info *sbi,
sbi               211 fs/erofs/zdata.c int erofs_try_to_free_all_cached_pages(struct erofs_sb_info *sbi,
sbi               216 fs/erofs/zdata.c 	struct address_space *const mapping = MNGD_MAPPING(sbi);
sbi               574 fs/erofs/zdata.c 	struct erofs_sb_info *const sbi __maybe_unused = EROFS_I_SB(inode);
sbi               623 fs/erofs/zdata.c 	if (should_alloc_managed_pages(fe, sbi->cache_strategy, map->m_la))
sbi               628 fs/erofs/zdata.c 	preload_compressed_pages(clt, MNGD_MAPPING(sbi),
sbi               723 fs/erofs/zdata.c 	struct erofs_sb_info *sbi = NULL;
sbi               735 fs/erofs/zdata.c 		if (!sbi && !z_erofs_page_is_staging(page))
sbi               736 fs/erofs/zdata.c 			sbi = EROFS_SB(page->mapping->host->i_sb);
sbi               739 fs/erofs/zdata.c 		if (sbi)
sbi               740 fs/erofs/zdata.c 			cachemngd = erofs_page_is_managed(sbi, page);
sbi               759 fs/erofs/zdata.c 	struct erofs_sb_info *const sbi = EROFS_SB(sb);
sbi               852 fs/erofs/zdata.c 			if (erofs_page_is_managed(sbi, page)) {
sbi               912 fs/erofs/zdata.c 		if (erofs_page_is_managed(sbi, page))
sbi              1208 fs/erofs/zdata.c 	struct erofs_sb_info *const sbi __maybe_unused = EROFS_SB(sb);
sbi              1254 fs/erofs/zdata.c 						  MNGD_MAPPING(sbi),
sbi              1361 fs/erofs/zdata.c static bool should_decompress_synchronously(struct erofs_sb_info *sbi,
sbi              1364 fs/erofs/zdata.c 	return nr <= sbi->max_sync_decompress_pages;
sbi              1373 fs/erofs/zdata.c 	struct erofs_sb_info *const sbi = EROFS_I_SB(inode);
sbi              1375 fs/erofs/zdata.c 	bool sync = should_decompress_synchronously(sbi, nr_pages);
sbi               102 fs/erofs/zdata.h #define MNGD_MAPPING(sbi)	((sbi)->managed_cache->i_mapping)
sbi               103 fs/erofs/zdata.h static inline bool erofs_page_is_managed(const struct erofs_sb_info *sbi,
sbi               106 fs/erofs/zdata.h 	return page->mapping == MNGD_MAPPING(sbi);
sbi                48 fs/ext2/balloc.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi                50 fs/ext2/balloc.c 	if (block_group >= sbi->s_groups_count) {
sbi                54 fs/ext2/balloc.c 			    block_group, sbi->s_groups_count);
sbi                61 fs/ext2/balloc.c 	if (!sbi->s_group_desc[group_desc]) {
sbi                69 fs/ext2/balloc.c 	desc = (struct ext2_group_desc *) sbi->s_group_desc[group_desc]->b_data;
sbi                71 fs/ext2/balloc.c 		*bh = sbi->s_group_desc[group_desc];
sbi               168 fs/ext2/balloc.c 		struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               171 fs/ext2/balloc.c 		spin_lock(sb_bgl_lock(sbi, group_no));
sbi               174 fs/ext2/balloc.c 		spin_unlock(sb_bgl_lock(sbi, group_no));
sbi               488 fs/ext2/balloc.c 	struct ext2_sb_info * sbi = EXT2_SB(sb);
sbi               490 fs/ext2/balloc.c 	struct ext2_super_block * es = sbi->s_es;
sbi               493 fs/ext2/balloc.c 	if (!ext2_data_block_valid(sbi, block, count)) {
sbi               528 fs/ext2/balloc.c 		      sbi->s_itb_per_group) ||
sbi               530 fs/ext2/balloc.c 		      sbi->s_itb_per_group)) {
sbi               539 fs/ext2/balloc.c 		if (!ext2_clear_bit_atomic(sb_bgl_lock(sbi, block_group),
sbi               563 fs/ext2/balloc.c 		percpu_counter_add(&sbi->s_freeblocks_counter, freed);
sbi              1181 fs/ext2/balloc.c static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
sbi              1185 fs/ext2/balloc.c 	free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
sbi              1186 fs/ext2/balloc.c 	root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
sbi              1188 fs/ext2/balloc.c 		!uid_eq(sbi->s_resuid, current_fsuid()) &&
sbi              1189 fs/ext2/balloc.c 		(gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
sbi              1190 fs/ext2/balloc.c 		 !in_group_p (sbi->s_resgid))) {
sbi              1200 fs/ext2/balloc.c int ext2_data_block_valid(struct ext2_sb_info *sbi, ext2_fsblk_t start_blk,
sbi              1203 fs/ext2/balloc.c 	if ((start_blk <= le32_to_cpu(sbi->s_es->s_first_data_block)) ||
sbi              1205 fs/ext2/balloc.c 	    (start_blk + count - 1 >= le32_to_cpu(sbi->s_es->s_blocks_count)))
sbi              1209 fs/ext2/balloc.c 	if ((start_blk <= sbi->s_sb_block) &&
sbi              1210 fs/ext2/balloc.c 	    (start_blk + count - 1 >= sbi->s_sb_block))
sbi              1246 fs/ext2/balloc.c 	struct ext2_sb_info *sbi;
sbi              1266 fs/ext2/balloc.c 	sbi = EXT2_SB(sb);
sbi              1284 fs/ext2/balloc.c 	if (!ext2_has_free_blocks(sbi)) {
sbi              1421 fs/ext2/balloc.c 	percpu_counter_sub(&sbi->s_freeblocks_counter, num);
sbi               122 fs/ext2/ext2.h sb_bgl_lock(struct ext2_sb_info *sbi, unsigned int block_group)
sbi               124 fs/ext2/ext2.h 	return bgl_lock_ptr(sbi->s_blockgroup_lock, block_group);
sbi               725 fs/ext2/ext2.h extern int ext2_data_block_valid(struct ext2_sb_info *sbi, ext2_fsblk_t start_blk,
sbi               258 fs/ext2/ialloc.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               259 fs/ext2/ialloc.c 	struct ext2_super_block *es = sbi->s_es;
sbi               260 fs/ext2/ialloc.c 	int ngroups = sbi->s_groups_count;
sbi               272 fs/ext2/ialloc.c 	freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter);
sbi               274 fs/ext2/ialloc.c 	free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
sbi               276 fs/ext2/ialloc.c 	ndirs = percpu_counter_read_positive(&sbi->s_dirs_counter);
sbi               331 fs/ext2/ialloc.c 		if (sbi->s_debts[group] >= max_debt)
sbi               439 fs/ext2/ialloc.c 	struct ext2_sb_info *sbi;
sbi               448 fs/ext2/ialloc.c 	sbi = EXT2_SB(sb);
sbi               449 fs/ext2/ialloc.c 	es = sbi->s_es;
sbi               463 fs/ext2/ialloc.c 	for (i = 0; i < sbi->s_groups_count; i++) {
sbi               466 fs/ext2/ialloc.c 			if (++group == sbi->s_groups_count)
sbi               490 fs/ext2/ialloc.c 			if (++group == sbi->s_groups_count)
sbi               494 fs/ext2/ialloc.c 		if (ext2_set_bit_atomic(sb_bgl_lock(sbi, group),
sbi               499 fs/ext2/ialloc.c 				if (++group == sbi->s_groups_count)
sbi               531 fs/ext2/ialloc.c 	percpu_counter_add(&sbi->s_freeinodes_counter, -1);
sbi               533 fs/ext2/ialloc.c 		percpu_counter_inc(&sbi->s_dirs_counter);
sbi               535 fs/ext2/ialloc.c 	spin_lock(sb_bgl_lock(sbi, group));
sbi               538 fs/ext2/ialloc.c 		if (sbi->s_debts[group] < 255)
sbi               539 fs/ext2/ialloc.c 			sbi->s_debts[group]++;
sbi               542 fs/ext2/ialloc.c 		if (sbi->s_debts[group])
sbi               543 fs/ext2/ialloc.c 			sbi->s_debts[group]--;
sbi               545 fs/ext2/ialloc.c 	spin_unlock(sb_bgl_lock(sbi, group));
sbi               572 fs/ext2/ialloc.c 	spin_lock(&sbi->s_next_gen_lock);
sbi               573 fs/ext2/ialloc.c 	inode->i_generation = sbi->s_next_generation++;
sbi               574 fs/ext2/ialloc.c 	spin_unlock(&sbi->s_next_gen_lock);
sbi               812 fs/ext2/inode.c 	struct ext2_sb_info *sbi = EXT2_SB(inode->i_sb);
sbi               825 fs/ext2/inode.c 	iomap->dax_dev = sbi->s_daxdev;
sbi                54 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi                55 fs/ext2/super.c 	struct ext2_super_block *es = sbi->s_es;
sbi                58 fs/ext2/super.c 		spin_lock(&sbi->s_lock);
sbi                59 fs/ext2/super.c 		sbi->s_mount_state |= EXT2_ERROR_FS;
sbi                61 fs/ext2/super.c 		spin_unlock(&sbi->s_lock);
sbi               148 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               152 fs/ext2/super.c 	ext2_xattr_destroy_cache(sbi->s_ea_block_cache);
sbi               153 fs/ext2/super.c 	sbi->s_ea_block_cache = NULL;
sbi               156 fs/ext2/super.c 		struct ext2_super_block *es = sbi->s_es;
sbi               158 fs/ext2/super.c 		spin_lock(&sbi->s_lock);
sbi               159 fs/ext2/super.c 		es->s_state = cpu_to_le16(sbi->s_mount_state);
sbi               160 fs/ext2/super.c 		spin_unlock(&sbi->s_lock);
sbi               163 fs/ext2/super.c 	db_count = sbi->s_gdb_count;
sbi               165 fs/ext2/super.c 		brelse(sbi->s_group_desc[i]);
sbi               166 fs/ext2/super.c 	kfree(sbi->s_group_desc);
sbi               167 fs/ext2/super.c 	kfree(sbi->s_debts);
sbi               168 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_freeblocks_counter);
sbi               169 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
sbi               170 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_dirs_counter);
sbi               171 fs/ext2/super.c 	brelse (sbi->s_sbh);
sbi               173 fs/ext2/super.c 	kfree(sbi->s_blockgroup_lock);
sbi               174 fs/ext2/super.c 	fs_put_dax(sbi->s_daxdev);
sbi               175 fs/ext2/super.c 	kfree(sbi);
sbi               242 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               243 fs/ext2/super.c 	struct ext2_super_block *es = sbi->s_es;
sbi               246 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi               249 fs/ext2/super.c 	if (sbi->s_sb_block != 1)
sbi               250 fs/ext2/super.c 		seq_printf(seq, ",sb=%lu", sbi->s_sb_block);
sbi               257 fs/ext2/super.c 	if (!uid_eq(sbi->s_resuid, make_kuid(&init_user_ns, EXT2_DEF_RESUID)) ||
sbi               260 fs/ext2/super.c 				from_kuid_munged(&init_user_ns, sbi->s_resuid));
sbi               262 fs/ext2/super.c 	if (!gid_eq(sbi->s_resgid, make_kgid(&init_user_ns, EXT2_DEF_RESGID)) ||
sbi               265 fs/ext2/super.c 				from_kgid_munged(&init_user_ns, sbi->s_resgid));
sbi               320 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi               649 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               659 fs/ext2/super.c 	if (!(sbi->s_mount_state & EXT2_VALID_FS))
sbi               663 fs/ext2/super.c 	else if ((sbi->s_mount_state & EXT2_ERROR_FS))
sbi               687 fs/ext2/super.c 			sbi->s_frag_size,
sbi               688 fs/ext2/super.c 			sbi->s_groups_count,
sbi               691 fs/ext2/super.c 			sbi->s_mount_opt);
sbi               698 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               702 fs/ext2/super.c 	for (i = 0; i < sbi->s_groups_count; i++) {
sbi               707 fs/ext2/super.c 		if (i == sbi->s_groups_count - 1)
sbi               708 fs/ext2/super.c 			last_block = le32_to_cpu(sbi->s_es->s_blocks_count) - 1;
sbi               732 fs/ext2/super.c 		    le32_to_cpu(gdp->bg_inode_table) + sbi->s_itb_per_group - 1 >
sbi               807 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi               811 fs/ext2/super.c 	first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
sbi               816 fs/ext2/super.c 	bg = sbi->s_desc_per_block * nr;
sbi               827 fs/ext2/super.c 	struct ext2_sb_info * sbi;
sbi               843 fs/ext2/super.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               844 fs/ext2/super.c 	if (!sbi)
sbi               847 fs/ext2/super.c 	sbi->s_blockgroup_lock =
sbi               849 fs/ext2/super.c 	if (!sbi->s_blockgroup_lock) {
sbi               850 fs/ext2/super.c 		kfree(sbi);
sbi               853 fs/ext2/super.c 	sb->s_fs_info = sbi;
sbi               854 fs/ext2/super.c 	sbi->s_sb_block = sb_block;
sbi               855 fs/ext2/super.c 	sbi->s_daxdev = dax_dev;
sbi               857 fs/ext2/super.c 	spin_lock_init(&sbi->s_lock);
sbi               893 fs/ext2/super.c 	sbi->s_es = es;
sbi               917 fs/ext2/super.c 	if (le16_to_cpu(sbi->s_es->s_errors) == EXT2_ERRORS_PANIC)
sbi               919 fs/ext2/super.c 	else if (le16_to_cpu(sbi->s_es->s_errors) == EXT2_ERRORS_CONTINUE)
sbi               932 fs/ext2/super.c 	sbi->s_mount_opt = opts.s_mount_opt;
sbi               933 fs/ext2/super.c 	sbi->s_resuid = opts.s_resuid;
sbi               934 fs/ext2/super.c 	sbi->s_resgid = opts.s_resgid;
sbi               966 fs/ext2/super.c 	blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
sbi               972 fs/ext2/super.c 			clear_opt(sbi->s_mount_opt, DAX);
sbi               995 fs/ext2/super.c 		sbi->s_es = es;
sbi              1008 fs/ext2/super.c 		sbi->s_inode_size = EXT2_GOOD_OLD_INODE_SIZE;
sbi              1009 fs/ext2/super.c 		sbi->s_first_ino = EXT2_GOOD_OLD_FIRST_INO;
sbi              1011 fs/ext2/super.c 		sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
sbi              1012 fs/ext2/super.c 		sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
sbi              1013 fs/ext2/super.c 		if ((sbi->s_inode_size < EXT2_GOOD_OLD_INODE_SIZE) ||
sbi              1014 fs/ext2/super.c 		    !is_power_of_2(sbi->s_inode_size) ||
sbi              1015 fs/ext2/super.c 		    (sbi->s_inode_size > blocksize)) {
sbi              1018 fs/ext2/super.c 				sbi->s_inode_size);
sbi              1023 fs/ext2/super.c 	sbi->s_frag_size = EXT2_MIN_FRAG_SIZE <<
sbi              1025 fs/ext2/super.c 	if (sbi->s_frag_size == 0)
sbi              1027 fs/ext2/super.c 	sbi->s_frags_per_block = sb->s_blocksize / sbi->s_frag_size;
sbi              1029 fs/ext2/super.c 	sbi->s_blocks_per_group = le32_to_cpu(es->s_blocks_per_group);
sbi              1030 fs/ext2/super.c 	sbi->s_frags_per_group = le32_to_cpu(es->s_frags_per_group);
sbi              1031 fs/ext2/super.c 	sbi->s_inodes_per_group = le32_to_cpu(es->s_inodes_per_group);
sbi              1033 fs/ext2/super.c 	sbi->s_inodes_per_block = sb->s_blocksize / EXT2_INODE_SIZE(sb);
sbi              1034 fs/ext2/super.c 	if (sbi->s_inodes_per_block == 0 || sbi->s_inodes_per_group == 0)
sbi              1036 fs/ext2/super.c 	sbi->s_itb_per_group = sbi->s_inodes_per_group /
sbi              1037 fs/ext2/super.c 					sbi->s_inodes_per_block;
sbi              1038 fs/ext2/super.c 	sbi->s_desc_per_block = sb->s_blocksize /
sbi              1040 fs/ext2/super.c 	sbi->s_sbh = bh;
sbi              1041 fs/ext2/super.c 	sbi->s_mount_state = le16_to_cpu(es->s_state);
sbi              1042 fs/ext2/super.c 	sbi->s_addr_per_block_bits =
sbi              1044 fs/ext2/super.c 	sbi->s_desc_per_block_bits =
sbi              1056 fs/ext2/super.c 	if (sb->s_blocksize != sbi->s_frag_size) {
sbi              1060 fs/ext2/super.c 			sbi->s_frag_size, sb->s_blocksize);
sbi              1064 fs/ext2/super.c 	if (sbi->s_blocks_per_group > sb->s_blocksize * 8) {
sbi              1067 fs/ext2/super.c 			sbi->s_blocks_per_group);
sbi              1070 fs/ext2/super.c 	if (sbi->s_frags_per_group > sb->s_blocksize * 8) {
sbi              1073 fs/ext2/super.c 			sbi->s_frags_per_group);
sbi              1076 fs/ext2/super.c 	if (sbi->s_inodes_per_group > sb->s_blocksize * 8) {
sbi              1079 fs/ext2/super.c 			sbi->s_inodes_per_group);
sbi              1085 fs/ext2/super.c 	sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) -
sbi              1088 fs/ext2/super.c 	db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) /
sbi              1090 fs/ext2/super.c 	sbi->s_group_desc = kmalloc_array (db_count,
sbi              1093 fs/ext2/super.c 	if (sbi->s_group_desc == NULL) {
sbi              1098 fs/ext2/super.c 	bgl_lock_init(sbi->s_blockgroup_lock);
sbi              1099 fs/ext2/super.c 	sbi->s_debts = kcalloc(sbi->s_groups_count, sizeof(*sbi->s_debts), GFP_KERNEL);
sbi              1100 fs/ext2/super.c 	if (!sbi->s_debts) {
sbi              1107 fs/ext2/super.c 		sbi->s_group_desc[i] = sb_bread(sb, block);
sbi              1108 fs/ext2/super.c 		if (!sbi->s_group_desc[i]) {
sbi              1110 fs/ext2/super.c 				brelse (sbi->s_group_desc[j]);
sbi              1120 fs/ext2/super.c 	sbi->s_gdb_count = db_count;
sbi              1121 fs/ext2/super.c 	get_random_bytes(&sbi->s_next_generation, sizeof(u32));
sbi              1122 fs/ext2/super.c 	spin_lock_init(&sbi->s_next_gen_lock);
sbi              1125 fs/ext2/super.c 	spin_lock_init(&sbi->s_rsv_window_lock);
sbi              1126 fs/ext2/super.c 	sbi->s_rsv_window_root = RB_ROOT;
sbi              1133 fs/ext2/super.c 	sbi->s_rsv_window_head.rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
sbi              1134 fs/ext2/super.c 	sbi->s_rsv_window_head.rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
sbi              1135 fs/ext2/super.c 	sbi->s_rsv_window_head.rsv_alloc_hit = 0;
sbi              1136 fs/ext2/super.c 	sbi->s_rsv_window_head.rsv_goal_size = 0;
sbi              1137 fs/ext2/super.c 	ext2_rsv_window_add(sb, &sbi->s_rsv_window_head);
sbi              1139 fs/ext2/super.c 	err = percpu_counter_init(&sbi->s_freeblocks_counter,
sbi              1142 fs/ext2/super.c 		err = percpu_counter_init(&sbi->s_freeinodes_counter,
sbi              1146 fs/ext2/super.c 		err = percpu_counter_init(&sbi->s_dirs_counter,
sbi              1155 fs/ext2/super.c 	sbi->s_ea_block_cache = ext2_xattr_create_cache();
sbi              1156 fs/ext2/super.c 	if (!sbi->s_ea_block_cache) {
sbi              1207 fs/ext2/super.c 	ext2_xattr_destroy_cache(sbi->s_ea_block_cache);
sbi              1208 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_freeblocks_counter);
sbi              1209 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
sbi              1210 fs/ext2/super.c 	percpu_counter_destroy(&sbi->s_dirs_counter);
sbi              1213 fs/ext2/super.c 		brelse(sbi->s_group_desc[i]);
sbi              1215 fs/ext2/super.c 	kfree(sbi->s_group_desc);
sbi              1216 fs/ext2/super.c 	kfree(sbi->s_debts);
sbi              1221 fs/ext2/super.c 	kfree(sbi->s_blockgroup_lock);
sbi              1222 fs/ext2/super.c 	kfree(sbi);
sbi              1275 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi              1284 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1289 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi              1296 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi              1308 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1309 fs/ext2/super.c 	sbi->s_es->s_state = cpu_to_le16(sbi->s_mount_state);
sbi              1310 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi              1311 fs/ext2/super.c 	ext2_sync_super(sb, sbi->s_es, 1);
sbi              1332 fs/ext2/super.c 	struct ext2_sb_info * sbi = EXT2_SB(sb);
sbi              1339 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1340 fs/ext2/super.c 	new_opts.s_mount_opt = sbi->s_mount_opt;
sbi              1341 fs/ext2/super.c 	new_opts.s_resuid = sbi->s_resuid;
sbi              1342 fs/ext2/super.c 	new_opts.s_resgid = sbi->s_resgid;
sbi              1343 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi              1348 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1349 fs/ext2/super.c 	es = sbi->s_es;
sbi              1350 fs/ext2/super.c 	if ((sbi->s_mount_opt ^ new_opts.s_mount_opt) & EXT2_MOUNT_DAX) {
sbi              1359 fs/ext2/super.c 		    !(sbi->s_mount_state & EXT2_VALID_FS))
sbi              1366 fs/ext2/super.c 		es->s_state = cpu_to_le16(sbi->s_mount_state);
sbi              1368 fs/ext2/super.c 		spin_unlock(&sbi->s_lock);
sbi              1379 fs/ext2/super.c 			spin_unlock(&sbi->s_lock);
sbi              1391 fs/ext2/super.c 		sbi->s_mount_state = le16_to_cpu(es->s_state);
sbi              1394 fs/ext2/super.c 		spin_unlock(&sbi->s_lock);
sbi              1401 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1403 fs/ext2/super.c 	sbi->s_mount_opt = new_opts.s_mount_opt;
sbi              1404 fs/ext2/super.c 	sbi->s_resuid = new_opts.s_resuid;
sbi              1405 fs/ext2/super.c 	sbi->s_resgid = new_opts.s_resgid;
sbi              1408 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi              1416 fs/ext2/super.c 	struct ext2_sb_info *sbi = EXT2_SB(sb);
sbi              1417 fs/ext2/super.c 	struct ext2_super_block *es = sbi->s_es;
sbi              1420 fs/ext2/super.c 	spin_lock(&sbi->s_lock);
sbi              1423 fs/ext2/super.c 		sbi->s_overhead_last = 0;
sbi              1424 fs/ext2/super.c 	else if (sbi->s_blocks_last != le32_to_cpu(es->s_blocks_count)) {
sbi              1445 fs/ext2/super.c 		for (i = 0; i < sbi->s_groups_count; i++)
sbi              1453 fs/ext2/super.c 		overhead += (sbi->s_groups_count *
sbi              1454 fs/ext2/super.c 			     (2 + sbi->s_itb_per_group));
sbi              1455 fs/ext2/super.c 		sbi->s_overhead_last = overhead;
sbi              1457 fs/ext2/super.c 		sbi->s_blocks_last = le32_to_cpu(es->s_blocks_count);
sbi              1462 fs/ext2/super.c 	buf->f_blocks = le32_to_cpu(es->s_blocks_count) - sbi->s_overhead_last;
sbi              1476 fs/ext2/super.c 	spin_unlock(&sbi->s_lock);
sbi               792 fs/ext2/xattr.c 	struct ext2_sb_info *sbi = EXT2_SB(inode->i_sb);
sbi               798 fs/ext2/xattr.c 	if (!ext2_data_block_valid(sbi, EXT2_I(inode)->i_file_acl, 1)) {
sbi                94 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               114 fs/ext4/balloc.c 		block_cluster = EXT4_B2C(sbi,
sbi               125 fs/ext4/balloc.c 		inode_cluster = EXT4_B2C(sbi,
sbi               136 fs/ext4/balloc.c 	for (i = 0; i < sbi->s_itb_per_group; i++) {
sbi               138 fs/ext4/balloc.c 			c = EXT4_B2C(sbi, itbl_blk + i - start);
sbi               185 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               212 fs/ext4/balloc.c 		ext4_set_bit(EXT4_B2C(sbi, tmp - start), bh->b_data);
sbi               216 fs/ext4/balloc.c 		ext4_set_bit(EXT4_B2C(sbi, tmp - start), bh->b_data);
sbi               220 fs/ext4/balloc.c 		     sbi->s_itb_per_group; tmp++) {
sbi               222 fs/ext4/balloc.c 			ext4_set_bit(EXT4_B2C(sbi, tmp - start), bh->b_data);
sbi               272 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               284 fs/ext4/balloc.c 	bh_p = sbi_array_rcu_deref(sbi, s_group_desc, group_desc);
sbi               315 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               336 fs/ext4/balloc.c 	if (offset < 0 || EXT4_B2C(sbi, offset) >= max_bit ||
sbi               337 fs/ext4/balloc.c 	    !ext4_test_bit(EXT4_B2C(sbi, offset), bh->b_data))
sbi               344 fs/ext4/balloc.c 	if (offset < 0 || EXT4_B2C(sbi, offset) >= max_bit ||
sbi               345 fs/ext4/balloc.c 	    !ext4_test_bit(EXT4_B2C(sbi, offset), bh->b_data))
sbi               352 fs/ext4/balloc.c 	if (offset < 0 || EXT4_B2C(sbi, offset) >= max_bit ||
sbi               353 fs/ext4/balloc.c 	    EXT4_B2C(sbi, offset + sbi->s_itb_per_group) >= max_bit)
sbi               356 fs/ext4/balloc.c 			EXT4_B2C(sbi, offset + sbi->s_itb_per_group),
sbi               357 fs/ext4/balloc.c 			EXT4_B2C(sbi, offset));
sbi               359 fs/ext4/balloc.c 	    EXT4_B2C(sbi, offset + sbi->s_itb_per_group))
sbi               418 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               427 fs/ext4/balloc.c 	if ((bitmap_blk <= le32_to_cpu(sbi->s_es->s_first_data_block)) ||
sbi               428 fs/ext4/balloc.c 	    (bitmap_blk >= ext4_blocks_count(sbi->s_es))) {
sbi               555 fs/ext4/balloc.c static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
sbi               559 fs/ext4/balloc.c 	struct percpu_counter *fcc = &sbi->s_freeclusters_counter;
sbi               560 fs/ext4/balloc.c 	struct percpu_counter *dcc = &sbi->s_dirtyclusters_counter;
sbi               564 fs/ext4/balloc.c 	resv_clusters = atomic64_read(&sbi->s_resv_clusters);
sbi               570 fs/ext4/balloc.c 	rsv = (ext4_r_blocks_count(sbi->s_es) >> sbi->s_cluster_bits) +
sbi               585 fs/ext4/balloc.c 	if (uid_eq(sbi->s_resuid, current_fsuid()) ||
sbi               586 fs/ext4/balloc.c 	    (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
sbi               603 fs/ext4/balloc.c int ext4_claim_free_clusters(struct ext4_sb_info *sbi,
sbi               606 fs/ext4/balloc.c 	if (ext4_has_free_clusters(sbi, nclusters, flags)) {
sbi               607 fs/ext4/balloc.c 		percpu_counter_add(&sbi->s_dirtyclusters_counter, nclusters);
sbi               845 fs/ext4/balloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               852 fs/ext4/balloc.c 	    block_group < le32_to_cpu(sbi->s_es->s_first_meta_bg) *
sbi               853 fs/ext4/balloc.c 			  sbi->s_desc_per_block) {
sbi               856 fs/ext4/balloc.c 			num += le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks);
sbi               861 fs/ext4/balloc.c 	return EXT4_NUM_B2C(sbi, num);
sbi                25 fs/ext4/bitmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                31 fs/ext4/bitmap.c 	calculated = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
sbi                32 fs/ext4/bitmap.c 	if (sbi->s_desc_size >= EXT4_BG_INODE_BITMAP_CSUM_HI_END) {
sbi                46 fs/ext4/bitmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                51 fs/ext4/bitmap.c 	csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
sbi                53 fs/ext4/bitmap.c 	if (sbi->s_desc_size >= EXT4_BG_INODE_BITMAP_CSUM_HI_END)
sbi                63 fs/ext4/bitmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                70 fs/ext4/bitmap.c 	calculated = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
sbi                71 fs/ext4/bitmap.c 	if (sbi->s_desc_size >= EXT4_BG_BLOCK_BITMAP_CSUM_HI_END) {
sbi                89 fs/ext4/bitmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                94 fs/ext4/bitmap.c 	csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)bh->b_data, sz);
sbi                96 fs/ext4/bitmap.c 	if (sbi->s_desc_size >= EXT4_BG_BLOCK_BITMAP_CSUM_HI_END)
sbi               132 fs/ext4/block_validity.c static void debug_print_tree(struct ext4_sb_info *sbi)
sbi               139 fs/ext4/block_validity.c 	node = rb_first(&sbi->system_blks->root);
sbi               155 fs/ext4/block_validity.c static int ext4_data_block_valid_rcu(struct ext4_sb_info *sbi,
sbi               163 fs/ext4/block_validity.c 	if ((start_blk <= le32_to_cpu(sbi->s_es->s_first_data_block)) ||
sbi               165 fs/ext4/block_validity.c 	    (start_blk + count > ext4_blocks_count(sbi->s_es))) {
sbi               166 fs/ext4/block_validity.c 		sbi->s_es->s_last_error_block = cpu_to_le64(start_blk);
sbi               181 fs/ext4/block_validity.c 			sbi->s_es->s_last_error_block = cpu_to_le64(start_blk);
sbi               193 fs/ext4/block_validity.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               199 fs/ext4/block_validity.c 	    (ino > le32_to_cpu(sbi->s_es->s_inodes_count)))
sbi               217 fs/ext4/block_validity.c 			if (!ext4_data_block_valid_rcu(sbi, system_blks,
sbi               256 fs/ext4/block_validity.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               260 fs/ext4/block_validity.c 	int flex_size = ext4_flex_bg_size(sbi);
sbi               264 fs/ext4/block_validity.c 		if (sbi->system_blks)
sbi               268 fs/ext4/block_validity.c 	if (sbi->system_blks)
sbi               293 fs/ext4/block_validity.c 				sbi->s_itb_per_group);
sbi               297 fs/ext4/block_validity.c 	if (ext4_has_feature_journal(sb) && sbi->s_es->s_journal_inum) {
sbi               299 fs/ext4/block_validity.c 				le32_to_cpu(sbi->s_es->s_journal_inum));
sbi               309 fs/ext4/block_validity.c 	rcu_assign_pointer(sbi->system_blks, system_blks);
sbi               312 fs/ext4/block_validity.c 		debug_print_tree(sbi);
sbi               342 fs/ext4/block_validity.c int ext4_data_block_valid(struct ext4_sb_info *sbi, ext4_fsblk_t start_blk,
sbi               354 fs/ext4/block_validity.c 	system_blks = rcu_dereference(sbi->system_blks);
sbi               355 fs/ext4/block_validity.c 	ret = ext4_data_block_valid_rcu(sbi, system_blks, start_blk,
sbi               693 fs/ext4/dir.c  	const struct ext4_sb_info *sbi = EXT4_SB(dentry->d_sb);
sbi               694 fs/ext4/dir.c  	const struct unicode_map *um = sbi->s_encoding;
sbi               708 fs/ext4/dir.c  		if (ext4_has_strict_mode(sbi))
sbi               285 fs/ext4/ext4.h #define EXT4_B2C(sbi, blk)	((blk) >> (sbi)->s_cluster_bits)
sbi               287 fs/ext4/ext4.h #define EXT4_C2B(sbi, cluster)	((cluster) << (sbi)->s_cluster_bits)
sbi               289 fs/ext4/ext4.h #define EXT4_NUM_B2C(sbi, blks)	(((blks) + (sbi)->s_cluster_ratio - 1) >> \
sbi               290 fs/ext4/ext4.h 				 (sbi)->s_cluster_bits)
sbi               297 fs/ext4/ext4.h #define EXT4_LBLK_CFILL(sbi, lblk) ((lblk) |				\
sbi               298 fs/ext4/ext4.h 				    ((ext4_lblk_t) (sbi)->s_cluster_ratio - 1))
sbi              1360 fs/ext4/ext4.h #define DUMMY_ENCRYPTION_ENABLED(sbi) (unlikely((sbi)->s_mount_flags & \
sbi              1363 fs/ext4/ext4.h #define DUMMY_ENCRYPTION_ENABLED(sbi) (0)
sbi              1376 fs/ext4/ext4.h #define ext4_has_strict_mode(sbi) \
sbi              1377 fs/ext4/ext4.h 	(sbi->s_encoding_flags & EXT4_ENC_STRICT_MODE_FL)
sbi              1583 fs/ext4/ext4.h #define sbi_array_rcu_deref(sbi, field, index)				   \
sbi              1585 fs/ext4/ext4.h 	typeof(*((sbi)->field)) _v;					   \
sbi              1587 fs/ext4/ext4.h 	_v = ((typeof(_v)*)rcu_dereference((sbi)->field))[index];	   \
sbi              1916 fs/ext4/ext4.h static inline int ext4_forced_shutdown(struct ext4_sb_info *sbi)
sbi              1918 fs/ext4/ext4.h 	return test_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
sbi              2092 fs/ext4/ext4.h static inline u32 ext4_chksum(struct ext4_sb_info *sbi, u32 crc,
sbi              2100 fs/ext4/ext4.h 	BUG_ON(crypto_shash_descsize(sbi->s_chksum_driver)!=sizeof(desc.ctx));
sbi              2102 fs/ext4/ext4.h 	desc.shash.tfm = sbi->s_chksum_driver;
sbi              2346 fs/ext4/ext4.h extern int ext4_claim_free_clusters(struct ext4_sb_info *sbi,
sbi              2959 fs/ext4/ext4.h static inline ext4_group_t ext4_flex_group(struct ext4_sb_info *sbi,
sbi              2962 fs/ext4/ext4.h 	return block_group >> sbi->s_log_groups_per_flex;
sbi              2965 fs/ext4/ext4.h static inline unsigned int ext4_flex_bg_size(struct ext4_sb_info *sbi)
sbi              2967 fs/ext4/ext4.h 	return 1 << sbi->s_log_groups_per_flex;
sbi              3070 fs/ext4/ext4.h static inline int ext4_fs_is_busy(struct ext4_sb_info *sbi)
sbi              3072 fs/ext4/ext4.h 	return (atomic_read(&sbi->s_lock_busy) > EXT4_CONTENTION_THRESHOLD);
sbi              3261 fs/ext4/ext4.h extern int ext4_data_block_valid(struct ext4_sb_info *sbi,
sbi               181 fs/ext4/ext4_jbd2.h 	struct ext4_sb_info *sbi =
sbi               186 fs/ext4/ext4_jbd2.h 	spin_lock(&sbi->s_md_lock);
sbi               188 fs/ext4/ext4_jbd2.h 	spin_unlock(&sbi->s_md_lock);
sbi               202 fs/ext4/ext4_jbd2.h 	struct ext4_sb_info *sbi =
sbi               205 fs/ext4/ext4_jbd2.h 	spin_lock(&sbi->s_md_lock);
sbi               208 fs/ext4/ext4_jbd2.h 	spin_unlock(&sbi->s_md_lock);
sbi                52 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi                55 fs/ext4/extents.c 	csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)eh,
sbi              1906 fs/ext4/extents.c static unsigned int ext4_ext_check_overlap(struct ext4_sb_info *sbi,
sbi              1920 fs/ext4/extents.c 	b2 = EXT4_LBLK_CMASK(sbi, le32_to_cpu(path[depth].p_ext->ee_block));
sbi              1930 fs/ext4/extents.c 		b2 = EXT4_LBLK_CMASK(sbi, b2);
sbi              2580 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2583 fs/ext4/extents.c 	dquot_reclaim_block(inode, EXT4_C2B(sbi, 1));
sbi              2587 fs/ext4/extents.c 	percpu_counter_add(&sbi->s_dirtyclusters_counter, 1);
sbi              2590 fs/ext4/extents.c 	percpu_counter_add(&sbi->s_freeclusters_counter, 1);
sbi              2599 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2608 fs/ext4/extents.c 		ext4_error(sbi->s_sb,
sbi              2615 fs/ext4/extents.c 	spin_lock(&sbi->s_ext_stats_lock);
sbi              2616 fs/ext4/extents.c 	sbi->s_ext_blocks += ee_len;
sbi              2617 fs/ext4/extents.c 	sbi->s_ext_extents++;
sbi              2618 fs/ext4/extents.c 	if (ee_len < sbi->s_ext_min)
sbi              2619 fs/ext4/extents.c 		sbi->s_ext_min = ee_len;
sbi              2620 fs/ext4/extents.c 	if (ee_len > sbi->s_ext_max)
sbi              2621 fs/ext4/extents.c 		sbi->s_ext_max = ee_len;
sbi              2622 fs/ext4/extents.c 	if (ext_depth(inode) > sbi->s_depth_max)
sbi              2623 fs/ext4/extents.c 		sbi->s_depth_max = ext_depth(inode);
sbi              2624 fs/ext4/extents.c 	spin_unlock(&sbi->s_ext_stats_lock);
sbi              2636 fs/ext4/extents.c 	    partial->pclu != EXT4_B2C(sbi, last_pblk)) {
sbi              2642 fs/ext4/extents.c 					 EXT4_C2B(sbi, partial->pclu),
sbi              2643 fs/ext4/extents.c 					 sbi->s_cluster_ratio, flags);
sbi              2662 fs/ext4/extents.c 	if ((EXT4_LBLK_COFF(sbi, to) != sbi->s_cluster_ratio - 1) &&
sbi              2663 fs/ext4/extents.c 	    (EXT4_LBLK_CMASK(sbi, to) >= from) &&
sbi              2668 fs/ext4/extents.c 				 EXT4_PBLK_CMASK(sbi, last_pblk),
sbi              2669 fs/ext4/extents.c 				 sbi->s_cluster_ratio, flags);
sbi              2688 fs/ext4/extents.c 	if (partial->state != initial && partial->pclu != EXT4_B2C(sbi, pblk))
sbi              2701 fs/ext4/extents.c 	if (EXT4_LBLK_COFF(sbi, from) && num == ee_len) {
sbi              2703 fs/ext4/extents.c 			partial->pclu = EXT4_B2C(sbi, pblk);
sbi              2735 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2793 fs/ext4/extents.c 			if (sbi->s_cluster_ratio > 1) {
sbi              2795 fs/ext4/extents.c 				partial->pclu = EXT4_B2C(sbi, pblk);
sbi              2897 fs/ext4/extents.c 		if (partial->pclu != EXT4_B2C(sbi, pblk)) {
sbi              2903 fs/ext4/extents.c 					 EXT4_C2B(sbi, partial->pclu),
sbi              2904 fs/ext4/extents.c 					 sbi->s_cluster_ratio, flags);
sbi              2944 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              3012 fs/ext4/extents.c 			if (sbi->s_cluster_ratio > 1) {
sbi              3014 fs/ext4/extents.c 				partial.pclu = EXT4_B2C(sbi, pblk);
sbi              3029 fs/ext4/extents.c 		} else if (sbi->s_cluster_ratio > 1 && end >= ex_end &&
sbi              3047 fs/ext4/extents.c 				partial.pclu = EXT4_B2C(sbi, pblk);
sbi              3169 fs/ext4/extents.c 				 EXT4_C2B(sbi, partial.pclu),
sbi              3170 fs/ext4/extents.c 				 sbi->s_cluster_ratio, flags);
sbi              3242 fs/ext4/extents.c 		struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3244 fs/ext4/extents.c 			sbi->s_ext_blocks, sbi->s_ext_extents,
sbi              3245 fs/ext4/extents.c 			sbi->s_ext_blocks / sbi->s_ext_extents);
sbi              3247 fs/ext4/extents.c 			sbi->s_ext_min, sbi->s_ext_max, sbi->s_depth_max);
sbi              3543 fs/ext4/extents.c 	struct ext4_sb_info *sbi;
sbi              3558 fs/ext4/extents.c 	sbi = EXT4_SB(inode->i_sb);
sbi              3704 fs/ext4/extents.c 		max_zeroout = sbi->s_extent_max_zeroout_kb >>
sbi              4192 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              4193 fs/ext4/extents.c 	ext4_lblk_t c_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
sbi              4201 fs/ext4/extents.c 	ex_cluster_start = EXT4_B2C(sbi, ee_block);
sbi              4202 fs/ext4/extents.c 	ex_cluster_end = EXT4_B2C(sbi, ee_block + ee_len - 1);
sbi              4205 fs/ext4/extents.c 	rr_cluster_start = EXT4_B2C(sbi, map->m_lblk);
sbi              4211 fs/ext4/extents.c 		map->m_pblk = EXT4_PBLK_CMASK(sbi, ee_start) + c_offset;
sbi              4213 fs/ext4/extents.c 				 (unsigned) sbi->s_cluster_ratio - c_offset);
sbi              4272 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              4384 fs/ext4/extents.c 	cluster_offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
sbi              4411 fs/ext4/extents.c 	if ((sbi->s_cluster_ratio > 1) && ex2 &&
sbi              4434 fs/ext4/extents.c 	err = ext4_ext_check_overlap(sbi, inode, &newex, path);
sbi              4452 fs/ext4/extents.c 	offset = EXT4_LBLK_COFF(sbi, map->m_lblk);
sbi              4453 fs/ext4/extents.c 	ar.len = EXT4_NUM_B2C(sbi, offset+allocated);
sbi              4474 fs/ext4/extents.c 	ar.len = EXT4_C2B(sbi, ar.len) - offset;
sbi              4504 fs/ext4/extents.c 				 EXT4_C2B(sbi, allocated_clusters), fb_flags);
sbi              4544 fs/ext4/extents.c 			lblk = EXT4_LBLK_CMASK(sbi, map->m_lblk);
sbi              4545 fs/ext4/extents.c 			len = allocated_clusters << sbi->s_cluster_bits;
sbi              5973 fs/ext4/extents.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              5980 fs/ext4/extents.c 	path = ext4_find_extent(inode, EXT4_C2B(sbi, lclu), NULL, 0);
sbi              5997 fs/ext4/extents.c 				 (unsigned long) EXT4_C2B(sbi, lclu),
sbi              6010 fs/ext4/extents.c 	first_lclu = EXT4_B2C(sbi, first_lblk);
sbi              6019 fs/ext4/extents.c 		last_lclu = EXT4_B2C(sbi, first_lblk +
sbi              6025 fs/ext4/extents.c 			first_lclu = EXT4_B2C(sbi, first_lblk);
sbi               151 fs/ext4/extents_status.c static int __es_shrink(struct ext4_sb_info *sbi, int nr_to_scan,
sbi               389 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               392 fs/ext4/extents_status.c 	lblk_start = EXT4_LBLK_CMASK(sbi, lblk);
sbi               393 fs/ext4/extents_status.c 	lblk_end = lblk_start + sbi->s_cluster_ratio - 1;
sbi               417 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               422 fs/ext4/extents_status.c 	spin_lock(&sbi->s_es_lock);
sbi               424 fs/ext4/extents_status.c 		list_add_tail(&ei->i_es_list, &sbi->s_es_list);
sbi               425 fs/ext4/extents_status.c 		sbi->s_es_nr_inode++;
sbi               427 fs/ext4/extents_status.c 	spin_unlock(&sbi->s_es_lock);
sbi               433 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               435 fs/ext4/extents_status.c 	spin_lock(&sbi->s_es_lock);
sbi               438 fs/ext4/extents_status.c 		sbi->s_es_nr_inode--;
sbi               439 fs/ext4/extents_status.c 		WARN_ON_ONCE(sbi->s_es_nr_inode < 0);
sbi               441 fs/ext4/extents_status.c 	spin_unlock(&sbi->s_es_lock);
sbi               813 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               850 fs/ext4/extents_status.c 	if (sbi->s_cluster_ratio > 1 && test_opt(inode->i_sb, DELALLOC) &&
sbi               995 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1006 fs/ext4/extents_status.c 	if (sbi->s_cluster_ratio > 1) {
sbi              1037 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1045 fs/ext4/extents_status.c 	if (sbi->s_cluster_ratio == 1) {
sbi              1069 fs/ext4/extents_status.c 	if (rc->partial && (rc->lclu != EXT4_B2C(sbi, i))) {
sbi              1078 fs/ext4/extents_status.c 	if (EXT4_LBLK_COFF(sbi, i) != 0) {
sbi              1079 fs/ext4/extents_status.c 		if (end >= EXT4_LBLK_CFILL(sbi, i)) {
sbi              1082 fs/ext4/extents_status.c 			i = EXT4_LBLK_CFILL(sbi, i) + 1;
sbi              1090 fs/ext4/extents_status.c 	if ((i + sbi->s_cluster_ratio - 1) <= end) {
sbi              1091 fs/ext4/extents_status.c 		nclu = (end - i + 1) >> sbi->s_cluster_bits;
sbi              1093 fs/ext4/extents_status.c 		i += nclu << sbi->s_cluster_bits;
sbi              1102 fs/ext4/extents_status.c 		rc->lclu = EXT4_B2C(sbi, i);
sbi              1161 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1169 fs/ext4/extents_status.c 	if (sbi->s_cluster_ratio > 1) {
sbi              1177 fs/ext4/extents_status.c 		first_lclu = EXT4_B2C(sbi, rc->first_do_lblk);
sbi              1178 fs/ext4/extents_status.c 		last_lclu = EXT4_B2C(sbi, rc->last_do_lblk);
sbi              1189 fs/ext4/extents_status.c 		       EXT4_LBLK_CMASK(sbi, rc->first_do_lblk)) {
sbi              1209 fs/ext4/extents_status.c 			       EXT4_LBLK_CFILL(sbi, rc->last_do_lblk)) {
sbi              1445 fs/ext4/extents_status.c static int __es_shrink(struct ext4_sb_info *sbi, int nr_to_scan,
sbi              1456 fs/ext4/extents_status.c 	es_stats = &sbi->s_es_stats;
sbi              1460 fs/ext4/extents_status.c 	spin_lock(&sbi->s_es_lock);
sbi              1461 fs/ext4/extents_status.c 	nr_to_walk = sbi->s_es_nr_inode;
sbi              1463 fs/ext4/extents_status.c 		if (list_empty(&sbi->s_es_list)) {
sbi              1464 fs/ext4/extents_status.c 			spin_unlock(&sbi->s_es_lock);
sbi              1467 fs/ext4/extents_status.c 		ei = list_first_entry(&sbi->s_es_list, struct ext4_inode_info,
sbi              1470 fs/ext4/extents_status.c 		list_move_tail(&ei->i_es_list, &sbi->s_es_list);
sbi              1490 fs/ext4/extents_status.c 		spin_unlock(&sbi->s_es_lock);
sbi              1497 fs/ext4/extents_status.c 		spin_lock(&sbi->s_es_lock);
sbi              1499 fs/ext4/extents_status.c 	spin_unlock(&sbi->s_es_lock);
sbi              1528 fs/ext4/extents_status.c 	trace_ext4_es_shrink(sbi->s_sb, nr_shrunk, scan_time,
sbi              1537 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi;
sbi              1539 fs/ext4/extents_status.c 	sbi = container_of(shrink, struct ext4_sb_info, s_es_shrinker);
sbi              1540 fs/ext4/extents_status.c 	nr = percpu_counter_read_positive(&sbi->s_es_stats.es_stats_shk_cnt);
sbi              1541 fs/ext4/extents_status.c 	trace_ext4_es_shrink_count(sbi->s_sb, sc->nr_to_scan, nr);
sbi              1548 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = container_of(shrink,
sbi              1553 fs/ext4/extents_status.c 	ret = percpu_counter_read_positive(&sbi->s_es_stats.es_stats_shk_cnt);
sbi              1554 fs/ext4/extents_status.c 	trace_ext4_es_shrink_scan_enter(sbi->s_sb, nr_to_scan, ret);
sbi              1559 fs/ext4/extents_status.c 	nr_shrunk = __es_shrink(sbi, nr_to_scan, NULL);
sbi              1561 fs/ext4/extents_status.c 	trace_ext4_es_shrink_scan_exit(sbi->s_sb, nr_shrunk, ret);
sbi              1567 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB((struct super_block *) seq->private);
sbi              1568 fs/ext4/extents_status.c 	struct ext4_es_stats *es_stats = &sbi->s_es_stats;
sbi              1576 fs/ext4/extents_status.c 	spin_lock(&sbi->s_es_lock);
sbi              1577 fs/ext4/extents_status.c 	list_for_each_entry(ei, &sbi->s_es_list, i_es_list) {
sbi              1584 fs/ext4/extents_status.c 	spin_unlock(&sbi->s_es_lock);
sbi              1608 fs/ext4/extents_status.c int ext4_es_register_shrinker(struct ext4_sb_info *sbi)
sbi              1614 fs/ext4/extents_status.c 	INIT_LIST_HEAD(&sbi->s_es_list);
sbi              1615 fs/ext4/extents_status.c 	sbi->s_es_nr_inode = 0;
sbi              1616 fs/ext4/extents_status.c 	spin_lock_init(&sbi->s_es_lock);
sbi              1617 fs/ext4/extents_status.c 	sbi->s_es_stats.es_stats_shrunk = 0;
sbi              1618 fs/ext4/extents_status.c 	err = percpu_counter_init(&sbi->s_es_stats.es_stats_cache_hits, 0,
sbi              1622 fs/ext4/extents_status.c 	err = percpu_counter_init(&sbi->s_es_stats.es_stats_cache_misses, 0,
sbi              1626 fs/ext4/extents_status.c 	sbi->s_es_stats.es_stats_scan_time = 0;
sbi              1627 fs/ext4/extents_status.c 	sbi->s_es_stats.es_stats_max_scan_time = 0;
sbi              1628 fs/ext4/extents_status.c 	err = percpu_counter_init(&sbi->s_es_stats.es_stats_all_cnt, 0, GFP_KERNEL);
sbi              1631 fs/ext4/extents_status.c 	err = percpu_counter_init(&sbi->s_es_stats.es_stats_shk_cnt, 0, GFP_KERNEL);
sbi              1635 fs/ext4/extents_status.c 	sbi->s_es_shrinker.scan_objects = ext4_es_scan;
sbi              1636 fs/ext4/extents_status.c 	sbi->s_es_shrinker.count_objects = ext4_es_count;
sbi              1637 fs/ext4/extents_status.c 	sbi->s_es_shrinker.seeks = DEFAULT_SEEKS;
sbi              1638 fs/ext4/extents_status.c 	err = register_shrinker(&sbi->s_es_shrinker);
sbi              1644 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_shk_cnt);
sbi              1646 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_all_cnt);
sbi              1648 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_cache_misses);
sbi              1650 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_cache_hits);
sbi              1654 fs/ext4/extents_status.c void ext4_es_unregister_shrinker(struct ext4_sb_info *sbi)
sbi              1656 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_cache_hits);
sbi              1657 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_cache_misses);
sbi              1658 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_all_cnt);
sbi              1659 fs/ext4/extents_status.c 	percpu_counter_destroy(&sbi->s_es_stats.es_stats_shk_cnt);
sbi              1660 fs/ext4/extents_status.c 	unregister_shrinker(&sbi->s_es_shrinker);
sbi              1852 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1860 fs/ext4/extents_status.c 	lclu = EXT4_B2C(sbi, lblk);
sbi              1901 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1905 fs/ext4/extents_status.c 	pr = __get_pending(inode, EXT4_B2C(sbi, lblk));
sbi              1943 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1948 fs/ext4/extents_status.c 	ret = (bool)(__get_pending(inode, EXT4_B2C(sbi, lblk)) != NULL);
sbi              2025 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2039 fs/ext4/extents_status.c 				first_lclu = EXT4_B2C(sbi, start);
sbi              2041 fs/ext4/extents_status.c 				first_lclu = EXT4_B2C(sbi, es->es_lblk);
sbi              2044 fs/ext4/extents_status.c 				last_lclu = EXT4_B2C(sbi, end);
sbi              2046 fs/ext4/extents_status.c 				last_lclu = EXT4_B2C(sbi, ext4_es_end(es));
sbi              2113 fs/ext4/extents_status.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2134 fs/ext4/extents_status.c 	if (EXT4_B2C(sbi, lblk) == EXT4_B2C(sbi, end)) {
sbi              2135 fs/ext4/extents_status.c 		first = EXT4_LBLK_CMASK(sbi, lblk);
sbi              2142 fs/ext4/extents_status.c 			last = EXT4_LBLK_CMASK(sbi, end) +
sbi              2143 fs/ext4/extents_status.c 			       sbi->s_cluster_ratio - 1;
sbi              2154 fs/ext4/extents_status.c 		first = EXT4_LBLK_CMASK(sbi, lblk);
sbi              2163 fs/ext4/extents_status.c 		last = EXT4_LBLK_CMASK(sbi, end) + sbi->s_cluster_ratio - 1;
sbi               236 fs/ext4/extents_status.h extern int ext4_es_register_shrinker(struct ext4_sb_info *sbi);
sbi               237 fs/ext4/extents_status.h extern void ext4_es_unregister_shrinker(struct ext4_sb_info *sbi);
sbi               178 fs/ext4/file.c 		struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               180 fs/ext4/file.c 		if (iocb->ki_pos >= sbi->s_bitmap_maxbytes)
sbi               182 fs/ext4/file.c 		iov_iter_truncate(from, sbi->s_bitmap_maxbytes - iocb->ki_pos);
sbi               374 fs/ext4/file.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               375 fs/ext4/file.c 	struct dax_device *dax_dev = sbi->s_daxdev;
sbi               377 fs/ext4/file.c 	if (unlikely(ext4_forced_shutdown(sbi)))
sbi               400 fs/ext4/file.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               406 fs/ext4/file.c 	if (likely(sbi->s_mount_flags & EXT4_MF_MNTDIR_SAMPLED))
sbi               412 fs/ext4/file.c 	sbi->s_mount_flags |= EXT4_MF_MNTDIR_SAMPLED;
sbi               431 fs/ext4/file.c 	BUFFER_TRACE(sbi->s_sbh, "get_write_access");
sbi               432 fs/ext4/file.c 	err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi               435 fs/ext4/file.c 	strlcpy(sbi->s_es->s_last_mounted, cp,
sbi               436 fs/ext4/file.c 		sizeof(sbi->s_es->s_last_mounted));
sbi                89 fs/ext4/fsmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               137 fs/ext4/fsmap.c 				EXT4_C2B(sbi, cno),
sbi               160 fs/ext4/fsmap.c 	trace_ext4_fsmap_mapping(sb, info->gfi_dev, agno, EXT4_C2B(sbi, cno),
sbi               194 fs/ext4/fsmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               199 fs/ext4/fsmap.c 	fsb = (EXT4_C2B(sbi, start) + ext4_group_first_block_no(sb, agno));
sbi               200 fs/ext4/fsmap.c 	fslen = EXT4_C2B(sbi, len);
sbi               315 fs/ext4/fsmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               318 fs/ext4/fsmap.c 	unsigned long first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
sbi               342 fs/ext4/fsmap.c 		len = le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks);
sbi               467 fs/ext4/fsmap.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               478 fs/ext4/fsmap.c 	bofs = le32_to_cpu(sbi->s_es->s_first_data_block);
sbi               479 fs/ext4/fsmap.c 	eofs = ext4_blocks_count(sbi->s_es);
sbi               499 fs/ext4/fsmap.c 	info->gfi_low.fmr_physical = EXT4_C2B(sbi, first_cluster);
sbi               519 fs/ext4/fsmap.c 			info->gfi_high.fmr_physical = EXT4_C2B(sbi,
sbi               535 fs/ext4/fsmap.c 				EXT4_B2C(sbi, info->gfi_low.fmr_physical),
sbi               536 fs/ext4/fsmap.c 				EXT4_B2C(sbi, info->gfi_high.fmr_physical),
sbi               121 fs/ext4/ialloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               131 fs/ext4/ialloc.c 	if ((bitmap_blk <= le32_to_cpu(sbi->s_es->s_first_data_block)) ||
sbi               132 fs/ext4/ialloc.c 	    (bitmap_blk >= ext4_blocks_count(sbi->s_es))) {
sbi               242 fs/ext4/ialloc.c 	struct ext4_sb_info *sbi;
sbi               262 fs/ext4/ialloc.c 	sbi = EXT4_SB(sb);
sbi               276 fs/ext4/ialloc.c 	es = sbi->s_es;
sbi               319 fs/ext4/ialloc.c 		percpu_counter_dec(&sbi->s_dirs_counter);
sbi               326 fs/ext4/ialloc.c 	percpu_counter_inc(&sbi->s_freeinodes_counter);
sbi               327 fs/ext4/ialloc.c 	if (sbi->s_log_groups_per_flex) {
sbi               330 fs/ext4/ialloc.c 		fg = sbi_array_rcu_deref(sbi, s_flex_groups,
sbi               331 fs/ext4/ialloc.c 					 ext4_flex_group(sbi, block_group));
sbi               418 fs/ext4/ialloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               429 fs/ext4/ialloc.c 	int flex_size = ext4_flex_bg_size(sbi);
sbi               435 fs/ext4/ialloc.c 			sbi->s_log_groups_per_flex;
sbi               436 fs/ext4/ialloc.c 		parent_group >>= sbi->s_log_groups_per_flex;
sbi               439 fs/ext4/ialloc.c 	freei = percpu_counter_read_positive(&sbi->s_freeinodes_counter);
sbi               441 fs/ext4/ialloc.c 	freeb = EXT4_C2B(sbi,
sbi               442 fs/ext4/ialloc.c 		percpu_counter_read_positive(&sbi->s_freeclusters_counter));
sbi               445 fs/ext4/ialloc.c 	ndirs = percpu_counter_read_positive(&sbi->s_dirs_counter);
sbi               455 fs/ext4/ialloc.c 			hinfo.seed = sbi->s_hash_seed;
sbi               517 fs/ext4/ialloc.c 			parent_group >>= sbi->s_log_groups_per_flex;
sbi               754 fs/ext4/ialloc.c 	struct ext4_sb_info *sbi;
sbi               767 fs/ext4/ialloc.c 	sbi = EXT4_SB(sb);
sbi               769 fs/ext4/ialloc.c 	if (unlikely(ext4_forced_shutdown(sbi)))
sbi               772 fs/ext4/ialloc.c 	if ((IS_ENCRYPTED(dir) || DUMMY_ENCRYPTION_ENABLED(sbi)) &&
sbi               783 fs/ext4/ialloc.c 	if (!handle && sbi->s_journal && !(i_flags & EXT4_EA_INODE_FL)) {
sbi               859 fs/ext4/ialloc.c 		goal = sbi->s_inode_goal;
sbi               861 fs/ext4/ialloc.c 	if (goal && goal <= le32_to_cpu(sbi->s_es->s_inodes_count)) {
sbi              1054 fs/ext4/ialloc.c 		if (sbi->s_log_groups_per_flex) {
sbi              1055 fs/ext4/ialloc.c 			ext4_group_t f = ext4_flex_group(sbi, group);
sbi              1057 fs/ext4/ialloc.c 			atomic_inc(&sbi_array_rcu_deref(sbi, s_flex_groups,
sbi              1075 fs/ext4/ialloc.c 	percpu_counter_dec(&sbi->s_freeinodes_counter);
sbi              1077 fs/ext4/ialloc.c 		percpu_counter_inc(&sbi->s_dirs_counter);
sbi              1079 fs/ext4/ialloc.c 	if (sbi->s_log_groups_per_flex) {
sbi              1080 fs/ext4/ialloc.c 		flex_group = ext4_flex_group(sbi, group);
sbi              1081 fs/ext4/ialloc.c 		atomic_dec(&sbi_array_rcu_deref(sbi, s_flex_groups,
sbi              1126 fs/ext4/ialloc.c 		csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)&inum,
sbi              1128 fs/ext4/ialloc.c 		ei->i_csum_seed = ext4_chksum(sbi, csum, (__u8 *)&gen,
sbi              1135 fs/ext4/ialloc.c 	ei->i_extra_isize = sbi->s_want_extra_isize;
sbi              1350 fs/ext4/ialloc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1389 fs/ext4/ialloc.c 			    sbi->s_inodes_per_block);
sbi              1391 fs/ext4/ialloc.c 	if ((used_blks < 0) || (used_blks > sbi->s_itb_per_group) ||
sbi              1405 fs/ext4/ialloc.c 	num = sbi->s_itb_per_group - used_blks;
sbi                56 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi                62 fs/ext4/inode.c 	csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)raw, offset);
sbi                63 fs/ext4/inode.c 	csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum, csum_size);
sbi                65 fs/ext4/inode.c 	csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset,
sbi                70 fs/ext4/inode.c 		csum = ext4_chksum(sbi, csum, (__u8 *)raw +
sbi                74 fs/ext4/inode.c 			csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum,
sbi                78 fs/ext4/inode.c 		csum = ext4_chksum(sbi, csum, (__u8 *)raw + offset,
sbi               365 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               381 fs/ext4/inode.c 	percpu_counter_sub(&sbi->s_dirtyclusters_counter, used);
sbi               387 fs/ext4/inode.c 		dquot_claim_block(inode, EXT4_C2B(sbi, used));
sbi               394 fs/ext4/inode.c 		dquot_release_reservation_block(inode, EXT4_C2B(sbi, used));
sbi              1607 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1616 fs/ext4/inode.c 	ret = dquot_reserve_block(inode, EXT4_C2B(sbi, 1));
sbi              1621 fs/ext4/inode.c 	if (ext4_claim_free_clusters(sbi, 1, 0)) {
sbi              1623 fs/ext4/inode.c 		dquot_release_reservation_block(inode, EXT4_C2B(sbi, 1));
sbi              1635 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1661 fs/ext4/inode.c 	percpu_counter_sub(&sbi->s_dirtyclusters_counter, to_free);
sbi              1665 fs/ext4/inode.c 	dquot_release_reservation_block(inode, EXT4_C2B(sbi, to_free));
sbi              1735 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1745 fs/ext4/inode.c 		percpu_counter_sum(&sbi->s_freeclusters_counter)));
sbi              1748 fs/ext4/inode.c 		percpu_counter_sum(&sbi->s_dirtyclusters_counter)));
sbi              1773 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              1788 fs/ext4/inode.c 	if (sbi->s_cluster_ratio == 1) {
sbi              1797 fs/ext4/inode.c 						      EXT4_B2C(sbi, lblk));
sbi              2729 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
sbi              2737 fs/ext4/inode.c 	percpu_down_read(&sbi->s_writepages_rwsem);
sbi              2764 fs/ext4/inode.c 		     sbi->s_mount_flags & EXT4_MF_FS_ABORTED)) {
sbi              2924 fs/ext4/inode.c 		if (ret == -ENOSPC && sbi->s_journal) {
sbi              2930 fs/ext4/inode.c 			jbd2_journal_force_commit_nested(sbi->s_journal);
sbi              2958 fs/ext4/inode.c 	percpu_up_read(&sbi->s_writepages_rwsem);
sbi              2968 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
sbi              2973 fs/ext4/inode.c 	percpu_down_read(&sbi->s_writepages_rwsem);
sbi              2979 fs/ext4/inode.c 	percpu_up_read(&sbi->s_writepages_rwsem);
sbi              2986 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2997 fs/ext4/inode.c 		percpu_counter_read_positive(&sbi->s_freeclusters_counter);
sbi              2999 fs/ext4/inode.c 		percpu_counter_read_positive(&sbi->s_dirtyclusters_counter);
sbi              3421 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              3545 fs/ext4/inode.c 	iomap->dax_dev = sbi->s_daxdev;
sbi              4901 fs/ext4/inode.c 		struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              4905 fs/ext4/inode.c 		csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)&inum,
sbi              4907 fs/ext4/inode.c 		ei->i_csum_seed = ext4_chksum(sbi, csum, (__u8 *)&gen,
sbi              5617 fs/ext4/inode.c 			struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              5619 fs/ext4/inode.c 			if (attr->ia_size > sbi->s_bitmap_maxbytes)
sbi              6094 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              6103 fs/ext4/inode.c 	if (EXT4_I(inode)->i_extra_isize < sbi->s_want_extra_isize)
sbi              6104 fs/ext4/inode.c 		ext4_try_to_expand_extra_isize(inode, sbi->s_want_extra_isize,
sbi              6150 fs/ext4/inode.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              6188 fs/ext4/inode.c 	percpu_down_write(&sbi->s_writepages_rwsem);
sbi              6205 fs/ext4/inode.c 			percpu_up_write(&sbi->s_writepages_rwsem);
sbi              6213 fs/ext4/inode.c 	percpu_up_write(&sbi->s_writepages_rwsem);
sbi                92 fs/ext4/ioctl.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               100 fs/ext4/ioctl.c 	csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)&inum, sizeof(inum));
sbi               101 fs/ext4/ioctl.c 	ei->i_csum_seed = ext4_chksum(sbi, csum, (__u8 *)&gen, sizeof(gen));
sbi               572 fs/ext4/ioctl.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               584 fs/ext4/ioctl.c 	if (ext4_forced_shutdown(sbi))
sbi               593 fs/ext4/ioctl.c 		set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
sbi               597 fs/ext4/ioctl.c 		set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
sbi               598 fs/ext4/ioctl.c 		if (sbi->s_journal && !is_journal_aborted(sbi->s_journal)) {
sbi               600 fs/ext4/ioctl.c 			jbd2_journal_abort(sbi->s_journal, -ESHUTDOWN);
sbi               604 fs/ext4/ioctl.c 		set_bit(EXT4_FLAGS_SHUTDOWN, &sbi->s_ext4_flags);
sbi               605 fs/ext4/ioctl.c 		if (sbi->s_journal && !is_journal_aborted(sbi->s_journal))
sbi               606 fs/ext4/ioctl.c 			jbd2_journal_abort(sbi->s_journal, -ESHUTDOWN);
sbi              1146 fs/ext4/ioctl.c 		struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1151 fs/ext4/ioctl.c 		if (uuid_is_zero(sbi->s_es->s_encrypt_pw_salt)) {
sbi              1160 fs/ext4/ioctl.c 			err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi              1163 fs/ext4/ioctl.c 			generate_random_uuid(sbi->s_es->s_encrypt_pw_salt);
sbi              1165 fs/ext4/ioctl.c 							 sbi->s_sbh);
sbi              1176 fs/ext4/ioctl.c 				 sbi->s_es->s_encrypt_pw_salt, 16))
sbi               657 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               682 fs/ext4/mballoc.c 				     buddy + sbi->s_mb_offsets[min]);
sbi               715 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               761 fs/ext4/mballoc.c 	spin_lock(&sbi->s_bal_lock);
sbi               762 fs/ext4/mballoc.c 	sbi->s_mb_buddies_generated++;
sbi               763 fs/ext4/mballoc.c 	sbi->s_mb_generation_time += period;
sbi               764 fs/ext4/mballoc.c 	spin_unlock(&sbi->s_bal_lock);
sbi              1109 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1110 fs/ext4/mballoc.c 	struct inode *inode = sbi->s_buddy_cache;
sbi              1447 fs/ext4/mballoc.c 		struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1451 fs/ext4/mballoc.c 		blocknr += EXT4_C2B(sbi, block);
sbi              1637 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              1668 fs/ext4/mballoc.c 		spin_lock(&sbi->s_md_lock);
sbi              1669 fs/ext4/mballoc.c 		sbi->s_mb_last_group = ac->ac_f_ex.fe_group;
sbi              1670 fs/ext4/mballoc.c 		sbi->s_mb_last_start = ac->ac_f_ex.fe_start;
sbi              1671 fs/ext4/mballoc.c 		spin_unlock(&sbi->s_md_lock);
sbi              1683 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              1694 fs/ext4/mballoc.c 	if (ac->ac_found > sbi->s_mb_max_to_scan &&
sbi              1706 fs/ext4/mballoc.c 	if ((finish_group || ac->ac_found > sbi->s_mb_min_to_scan)
sbi              1823 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              1846 fs/ext4/mballoc.c 	if (max >= ac->ac_g_ex.fe_len && ac->ac_g_ex.fe_len == sbi->s_stripe) {
sbi              1852 fs/ext4/mballoc.c 		if (do_div(start, sbi->s_stripe) == 0) {
sbi              1998 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2006 fs/ext4/mballoc.c 	BUG_ON(sbi->s_stripe == 0);
sbi              2011 fs/ext4/mballoc.c 	a = first_group_block + sbi->s_stripe - 1;
sbi              2012 fs/ext4/mballoc.c 	do_div(a, sbi->s_stripe);
sbi              2013 fs/ext4/mballoc.c 	i = (a * sbi->s_stripe) - first_group_block;
sbi              2017 fs/ext4/mballoc.c 			max = mb_find_extent(e4b, i, sbi->s_stripe, &ex);
sbi              2018 fs/ext4/mballoc.c 			if (max >= sbi->s_stripe) {
sbi              2026 fs/ext4/mballoc.c 		i += sbi->s_stripe;
sbi              2106 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi;
sbi              2111 fs/ext4/mballoc.c 	sbi = EXT4_SB(sb);
sbi              2115 fs/ext4/mballoc.c 		ngroups = sbi->s_blockfile_groups;
sbi              2141 fs/ext4/mballoc.c 	if (i >= sbi->s_mb_order2_reqs && i <= sb->s_blocksize_bits + 2) {
sbi              2153 fs/ext4/mballoc.c 		spin_lock(&sbi->s_md_lock);
sbi              2154 fs/ext4/mballoc.c 		ac->ac_g_ex.fe_group = sbi->s_mb_last_group;
sbi              2155 fs/ext4/mballoc.c 		ac->ac_g_ex.fe_start = sbi->s_mb_last_start;
sbi              2156 fs/ext4/mballoc.c 		spin_unlock(&sbi->s_md_lock);
sbi              2214 fs/ext4/mballoc.c 			else if (cr == 1 && sbi->s_stripe &&
sbi              2215 fs/ext4/mballoc.c 					!(ac->ac_g_ex.fe_len % sbi->s_stripe))
sbi              2249 fs/ext4/mballoc.c 			atomic_inc(&sbi->s_mb_lost_chunks);
sbi              2359 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2365 fs/ext4/mballoc.c 	if (size <= sbi->s_group_info_size)
sbi              2368 fs/ext4/mballoc.c 	size = roundup_pow_of_two(sizeof(*sbi->s_group_info) * size);
sbi              2375 fs/ext4/mballoc.c 	old_groupinfo = rcu_dereference(sbi->s_group_info);
sbi              2378 fs/ext4/mballoc.c 		       sbi->s_group_info_size * sizeof(*sbi->s_group_info));
sbi              2380 fs/ext4/mballoc.c 	rcu_assign_pointer(sbi->s_group_info, new_groupinfo);
sbi              2381 fs/ext4/mballoc.c 	sbi->s_group_info_size = size / sizeof(*sbi->s_group_info);
sbi              2385 fs/ext4/mballoc.c 		   sbi->s_group_info_size);
sbi              2396 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2415 fs/ext4/mballoc.c 		rcu_dereference(sbi->s_group_info)[idx] = meta_group_info;
sbi              2419 fs/ext4/mballoc.c 	meta_group_info = sbi_array_rcu_deref(sbi, s_group_info, idx);
sbi              2470 fs/ext4/mballoc.c 		group_info = rcu_dereference(sbi->s_group_info);
sbi              2483 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2493 fs/ext4/mballoc.c 	sbi->s_buddy_cache = new_inode(sb);
sbi              2494 fs/ext4/mballoc.c 	if (sbi->s_buddy_cache == NULL) {
sbi              2502 fs/ext4/mballoc.c 	sbi->s_buddy_cache->i_ino = EXT4_BAD_INO;
sbi              2503 fs/ext4/mballoc.c 	EXT4_I(sbi->s_buddy_cache)->i_disksize = 0;
sbi              2521 fs/ext4/mballoc.c 	i = sbi->s_group_info_size;
sbi              2523 fs/ext4/mballoc.c 	group_info = rcu_dereference(sbi->s_group_info);
sbi              2527 fs/ext4/mballoc.c 	iput(sbi->s_buddy_cache);
sbi              2530 fs/ext4/mballoc.c 	kvfree(rcu_dereference(sbi->s_group_info));
sbi              2586 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2592 fs/ext4/mballoc.c 	i = (sb->s_blocksize_bits + 2) * sizeof(*sbi->s_mb_offsets);
sbi              2594 fs/ext4/mballoc.c 	sbi->s_mb_offsets = kmalloc(i, GFP_KERNEL);
sbi              2595 fs/ext4/mballoc.c 	if (sbi->s_mb_offsets == NULL) {
sbi              2600 fs/ext4/mballoc.c 	i = (sb->s_blocksize_bits + 2) * sizeof(*sbi->s_mb_maxs);
sbi              2601 fs/ext4/mballoc.c 	sbi->s_mb_maxs = kmalloc(i, GFP_KERNEL);
sbi              2602 fs/ext4/mballoc.c 	if (sbi->s_mb_maxs == NULL) {
sbi              2612 fs/ext4/mballoc.c 	sbi->s_mb_maxs[0] = sb->s_blocksize << 3;
sbi              2613 fs/ext4/mballoc.c 	sbi->s_mb_offsets[0] = 0;
sbi              2620 fs/ext4/mballoc.c 		sbi->s_mb_offsets[i] = offset;
sbi              2621 fs/ext4/mballoc.c 		sbi->s_mb_maxs[i] = max;
sbi              2628 fs/ext4/mballoc.c 	spin_lock_init(&sbi->s_md_lock);
sbi              2629 fs/ext4/mballoc.c 	spin_lock_init(&sbi->s_bal_lock);
sbi              2630 fs/ext4/mballoc.c 	sbi->s_mb_free_pending = 0;
sbi              2631 fs/ext4/mballoc.c 	INIT_LIST_HEAD(&sbi->s_freed_data_list);
sbi              2633 fs/ext4/mballoc.c 	sbi->s_mb_max_to_scan = MB_DEFAULT_MAX_TO_SCAN;
sbi              2634 fs/ext4/mballoc.c 	sbi->s_mb_min_to_scan = MB_DEFAULT_MIN_TO_SCAN;
sbi              2635 fs/ext4/mballoc.c 	sbi->s_mb_stats = MB_DEFAULT_STATS;
sbi              2636 fs/ext4/mballoc.c 	sbi->s_mb_stream_request = MB_DEFAULT_STREAM_THRESHOLD;
sbi              2637 fs/ext4/mballoc.c 	sbi->s_mb_order2_reqs = MB_DEFAULT_ORDER2_REQS;
sbi              2650 fs/ext4/mballoc.c 	sbi->s_mb_group_prealloc = max(MB_DEFAULT_GROUP_PREALLOC >>
sbi              2651 fs/ext4/mballoc.c 				       sbi->s_cluster_bits, 32);
sbi              2660 fs/ext4/mballoc.c 	if (sbi->s_stripe > 1) {
sbi              2661 fs/ext4/mballoc.c 		sbi->s_mb_group_prealloc = roundup(
sbi              2662 fs/ext4/mballoc.c 			sbi->s_mb_group_prealloc, sbi->s_stripe);
sbi              2665 fs/ext4/mballoc.c 	sbi->s_locality_groups = alloc_percpu(struct ext4_locality_group);
sbi              2666 fs/ext4/mballoc.c 	if (sbi->s_locality_groups == NULL) {
sbi              2672 fs/ext4/mballoc.c 		lg = per_cpu_ptr(sbi->s_locality_groups, i);
sbi              2687 fs/ext4/mballoc.c 	free_percpu(sbi->s_locality_groups);
sbi              2688 fs/ext4/mballoc.c 	sbi->s_locality_groups = NULL;
sbi              2690 fs/ext4/mballoc.c 	kfree(sbi->s_mb_offsets);
sbi              2691 fs/ext4/mballoc.c 	sbi->s_mb_offsets = NULL;
sbi              2692 fs/ext4/mballoc.c 	kfree(sbi->s_mb_maxs);
sbi              2693 fs/ext4/mballoc.c 	sbi->s_mb_maxs = NULL;
sbi              2721 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2724 fs/ext4/mballoc.c 	if (sbi->s_group_info) {
sbi              2740 fs/ext4/mballoc.c 		group_info = rcu_dereference(sbi->s_group_info);
sbi              2746 fs/ext4/mballoc.c 	kfree(sbi->s_mb_offsets);
sbi              2747 fs/ext4/mballoc.c 	kfree(sbi->s_mb_maxs);
sbi              2748 fs/ext4/mballoc.c 	iput(sbi->s_buddy_cache);
sbi              2749 fs/ext4/mballoc.c 	if (sbi->s_mb_stats) {
sbi              2752 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_allocated),
sbi              2753 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_reqs),
sbi              2754 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_success));
sbi              2758 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_ex_scanned),
sbi              2759 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_goals),
sbi              2760 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_2orders),
sbi              2761 fs/ext4/mballoc.c 				atomic_read(&sbi->s_bal_breaks),
sbi              2762 fs/ext4/mballoc.c 				atomic_read(&sbi->s_mb_lost_chunks));
sbi              2765 fs/ext4/mballoc.c 				sbi->s_mb_buddies_generated,
sbi              2766 fs/ext4/mballoc.c 				sbi->s_mb_generation_time);
sbi              2769 fs/ext4/mballoc.c 				atomic_read(&sbi->s_mb_preallocated),
sbi              2770 fs/ext4/mballoc.c 				atomic_read(&sbi->s_mb_discarded));
sbi              2773 fs/ext4/mballoc.c 	free_percpu(sbi->s_locality_groups);
sbi              2854 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2863 fs/ext4/mballoc.c 	spin_lock(&sbi->s_md_lock);
sbi              2864 fs/ext4/mballoc.c 	list_for_each_entry(entry, &sbi->s_freed_data_list, efd_list) {
sbi              2870 fs/ext4/mballoc.c 		list_cut_position(&freed_data_list, &sbi->s_freed_data_list,
sbi              2872 fs/ext4/mballoc.c 	spin_unlock(&sbi->s_md_lock);
sbi              2949 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi;
sbi              2958 fs/ext4/mballoc.c 	sbi = EXT4_SB(sb);
sbi              2987 fs/ext4/mballoc.c 	len = EXT4_C2B(sbi, ac->ac_b_ex.fe_len);
sbi              2988 fs/ext4/mballoc.c 	if (!ext4_data_block_valid(sbi, block, len)) {
sbi              3030 fs/ext4/mballoc.c 	percpu_counter_sub(&sbi->s_freeclusters_counter, ac->ac_b_ex.fe_len);
sbi              3036 fs/ext4/mballoc.c 		percpu_counter_sub(&sbi->s_dirtyclusters_counter,
sbi              3039 fs/ext4/mballoc.c 	if (sbi->s_log_groups_per_flex) {
sbi              3040 fs/ext4/mballoc.c 		ext4_group_t flex_group = ext4_flex_group(sbi,
sbi              3043 fs/ext4/mballoc.c 			     &sbi_array_rcu_deref(sbi, s_flex_groups,
sbi              3085 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              3117 fs/ext4/mballoc.c 	size = ac->ac_o_ex.fe_logical + EXT4_C2B(sbi, ac->ac_o_ex.fe_len);
sbi              3254 fs/ext4/mballoc.c 	ac->ac_g_ex.fe_len = EXT4_NUM_B2C(sbi, size);
sbi              3278 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              3280 fs/ext4/mballoc.c 	if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
sbi              3281 fs/ext4/mballoc.c 		atomic_inc(&sbi->s_bal_reqs);
sbi              3282 fs/ext4/mballoc.c 		atomic_add(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
sbi              3284 fs/ext4/mballoc.c 			atomic_inc(&sbi->s_bal_success);
sbi              3285 fs/ext4/mballoc.c 		atomic_add(ac->ac_found, &sbi->s_bal_ex_scanned);
sbi              3288 fs/ext4/mballoc.c 			atomic_inc(&sbi->s_bal_goals);
sbi              3289 fs/ext4/mballoc.c 		if (ac->ac_found > sbi->s_mb_max_to_scan)
sbi              3290 fs/ext4/mballoc.c 			atomic_inc(&sbi->s_bal_breaks);
sbi              3341 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              3348 fs/ext4/mballoc.c 	end = min(pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len),
sbi              3349 fs/ext4/mballoc.c 		  start + EXT4_C2B(sbi, ac->ac_o_ex.fe_len));
sbi              3350 fs/ext4/mballoc.c 	len = EXT4_NUM_B2C(sbi, end - start);
sbi              3358 fs/ext4/mballoc.c 	BUG_ON(end > pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len));
sbi              3424 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              3443 fs/ext4/mballoc.c 					       EXT4_C2B(sbi, pa->pa_len)))
sbi              3448 fs/ext4/mballoc.c 		    (pa->pa_pstart + EXT4_C2B(sbi, pa->pa_len) >
sbi              3649 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3681 fs/ext4/mballoc.c 		wins = EXT4_C2B(sbi, ac->ac_b_ex.fe_len - ac->ac_o_ex.fe_len);
sbi              3687 fs/ext4/mballoc.c 			EXT4_C2B(sbi, ac->ac_b_ex.fe_len);
sbi              3692 fs/ext4/mballoc.c 			EXT4_NUM_B2C(sbi, win);
sbi              3717 fs/ext4/mballoc.c 	atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
sbi              3821 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3831 fs/ext4/mballoc.c 	grp_blk_start = pa->pa_pstart - EXT4_C2B(sbi, bit);
sbi              3847 fs/ext4/mballoc.c 						    EXT4_C2B(sbi, bit)),
sbi              3865 fs/ext4/mballoc.c 	atomic_add(free, &sbi->s_mb_discarded);
sbi              4188 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              4198 fs/ext4/mballoc.c 	size = ac->ac_o_ex.fe_logical + EXT4_C2B(sbi, ac->ac_o_ex.fe_len);
sbi              4202 fs/ext4/mballoc.c 	if ((size == isize) && !ext4_fs_is_busy(sbi) &&
sbi              4208 fs/ext4/mballoc.c 	if (sbi->s_mb_group_prealloc <= 0) {
sbi              4215 fs/ext4/mballoc.c 	if (size > sbi->s_mb_stream_request) {
sbi              4226 fs/ext4/mballoc.c 	ac->ac_lg = raw_cpu_ptr(sbi->s_locality_groups);
sbi              4240 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              4241 fs/ext4/mballoc.c 	struct ext4_super_block *es = sbi->s_es;
sbi              4262 fs/ext4/mballoc.c 	ac->ac_b_ex.fe_logical = EXT4_LBLK_CMASK(sbi, ar->logical);
sbi              4425 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
sbi              4431 fs/ext4/mballoc.c 			pa->pa_pstart += EXT4_C2B(sbi, ac->ac_b_ex.fe_len);
sbi              4432 fs/ext4/mballoc.c 			pa->pa_lstart += EXT4_C2B(sbi, ac->ac_b_ex.fe_len);
sbi              4489 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi;
sbi              4497 fs/ext4/mballoc.c 	sbi = EXT4_SB(sb);
sbi              4511 fs/ext4/mballoc.c 			ext4_claim_free_clusters(sbi, ar->len, ar->flags)) {
sbi              4524 fs/ext4/mballoc.c 						 EXT4_C2B(sbi, ar->len));
sbi              4528 fs/ext4/mballoc.c 						  EXT4_C2B(sbi, ar->len))) {
sbi              4603 fs/ext4/mballoc.c 		dquot_free_block(ar->inode, EXT4_C2B(sbi, inquota - ar->len));
sbi              4607 fs/ext4/mballoc.c 			percpu_counter_sub(&sbi->s_dirtyclusters_counter,
sbi              4621 fs/ext4/mballoc.c static void ext4_try_merge_freed_extent(struct ext4_sb_info *sbi,
sbi              4638 fs/ext4/mballoc.c 	spin_lock(&sbi->s_md_lock);
sbi              4640 fs/ext4/mballoc.c 	spin_unlock(&sbi->s_md_lock);
sbi              4655 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              4685 fs/ext4/mballoc.c 				EXT4_C2B(sbi, cluster),
sbi              4698 fs/ext4/mballoc.c 		ext4_try_merge_freed_extent(sbi, entry, new_entry,
sbi              4705 fs/ext4/mballoc.c 		ext4_try_merge_freed_extent(sbi, entry, new_entry,
sbi              4709 fs/ext4/mballoc.c 	spin_lock(&sbi->s_md_lock);
sbi              4710 fs/ext4/mballoc.c 	list_add_tail(&new_entry->efd_list, &sbi->s_freed_data_list);
sbi              4711 fs/ext4/mballoc.c 	sbi->s_mb_free_pending += clusters;
sbi              4712 fs/ext4/mballoc.c 	spin_unlock(&sbi->s_md_lock);
sbi              4736 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi;
sbi              4750 fs/ext4/mballoc.c 	sbi = EXT4_SB(sb);
sbi              4752 fs/ext4/mballoc.c 	    !ext4_data_block_valid(sbi, block, count)) {
sbi              4775 fs/ext4/mballoc.c 	overflow = EXT4_PBLK_COFF(sbi, block);
sbi              4778 fs/ext4/mballoc.c 			overflow = sbi->s_cluster_ratio - overflow;
sbi              4789 fs/ext4/mballoc.c 	overflow = EXT4_LBLK_COFF(sbi, count);
sbi              4797 fs/ext4/mballoc.c 			count += sbi->s_cluster_ratio - overflow;
sbi              4824 fs/ext4/mballoc.c 	if (EXT4_C2B(sbi, bit) + count > EXT4_BLOCKS_PER_GROUP(sb)) {
sbi              4825 fs/ext4/mballoc.c 		overflow = EXT4_C2B(sbi, bit) + count -
sbi              4829 fs/ext4/mballoc.c 	count_clusters = EXT4_NUM_B2C(sbi, count);
sbi              4845 fs/ext4/mballoc.c 		     sbi->s_itb_per_group) ||
sbi              4847 fs/ext4/mballoc.c 		     sbi->s_itb_per_group)) {
sbi              4935 fs/ext4/mballoc.c 	if (sbi->s_log_groups_per_flex) {
sbi              4936 fs/ext4/mballoc.c 		ext4_group_t flex_group = ext4_flex_group(sbi, block_group);
sbi              4938 fs/ext4/mballoc.c 			     &sbi_array_rcu_deref(sbi, s_flex_groups,
sbi              4949 fs/ext4/mballoc.c 			dquot_free_block(inode, EXT4_C2B(sbi, count_clusters));
sbi              4950 fs/ext4/mballoc.c 		percpu_counter_add(&sbi->s_freeclusters_counter,
sbi              4996 fs/ext4/mballoc.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              5000 fs/ext4/mballoc.c 	ext4_fsblk_t first_cluster = EXT4_B2C(sbi, block);
sbi              5001 fs/ext4/mballoc.c 	ext4_fsblk_t last_cluster = EXT4_B2C(sbi, block + count - 1);
sbi              5036 fs/ext4/mballoc.c 	    in_range(block, ext4_inode_table(sb, desc), sbi->s_itb_per_group) ||
sbi              5038 fs/ext4/mballoc.c 		     sbi->s_itb_per_group)) {
sbi              5090 fs/ext4/mballoc.c 	percpu_counter_add(&sbi->s_freeclusters_counter,
sbi              5093 fs/ext4/mballoc.c 	if (sbi->s_log_groups_per_flex) {
sbi              5094 fs/ext4/mballoc.c 		ext4_group_t flex_group = ext4_flex_group(sbi, block_group);
sbi              5096 fs/ext4/mballoc.c 			     &sbi_array_rcu_deref(sbi, s_flex_groups,
sbi               430 fs/ext4/migrate.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               455 fs/ext4/migrate.c 	percpu_down_write(&sbi->s_writepages_rwsem);
sbi               605 fs/ext4/migrate.c 	percpu_up_write(&sbi->s_writepages_rwsem);
sbi               615 fs/ext4/migrate.c 	struct ext4_sb_info		*sbi = EXT4_SB(inode->i_sb);
sbi               616 fs/ext4/migrate.c 	struct ext4_super_block		*es = sbi->s_es;
sbi               640 fs/ext4/migrate.c 	percpu_down_write(&sbi->s_writepages_rwsem);
sbi               682 fs/ext4/migrate.c 	percpu_up_write(&sbi->s_writepages_rwsem);
sbi                13 fs/ext4/mmp.c  	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                17 fs/ext4/mmp.c  	csum = ext4_chksum(sbi, sbi->s_csum_seed, (char *)mmp, offset);
sbi               343 fs/ext4/namei.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               347 fs/ext4/namei.c 	csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)dirent, size);
sbi               438 fs/ext4/namei.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               446 fs/ext4/namei.c 	csum = ext4_chksum(sbi, ei->i_csum_seed, (__u8 *)dirent, size);
sbi               447 fs/ext4/namei.c 	csum = ext4_chksum(sbi, csum, (__u8 *)t, offset);
sbi               448 fs/ext4/namei.c 	csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum, sizeof(dummy_csum));
sbi              1285 fs/ext4/namei.c 	const struct ext4_sb_info *sbi = EXT4_SB(parent->i_sb);
sbi              1286 fs/ext4/namei.c 	const struct unicode_map *um = sbi->s_encoding;
sbi              1298 fs/ext4/namei.c 		if (ext4_has_strict_mode(sbi))
sbi              2168 fs/ext4/namei.c 	struct ext4_sb_info *sbi;
sbi              2180 fs/ext4/namei.c 	sbi = EXT4_SB(sb);
sbi              2186 fs/ext4/namei.c 	if (ext4_has_strict_mode(sbi) && IS_CASEFOLDED(dir) &&
sbi              2187 fs/ext4/namei.c 	    sbi->s_encoding && utf8_validate(sbi->s_encoding, &dentry->d_name))
sbi              2906 fs/ext4/namei.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2911 fs/ext4/namei.c 	if (!sbi->s_journal || is_bad_inode(inode))
sbi              2932 fs/ext4/namei.c 	BUFFER_TRACE(sbi->s_sbh, "get_write_access");
sbi              2933 fs/ext4/namei.c 	err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi              2941 fs/ext4/namei.c 	mutex_lock(&sbi->s_orphan_lock);
sbi              2947 fs/ext4/namei.c 	    (le32_to_cpu(sbi->s_es->s_inodes_count))) {
sbi              2949 fs/ext4/namei.c 		NEXT_ORPHAN(inode) = le32_to_cpu(sbi->s_es->s_last_orphan);
sbi              2950 fs/ext4/namei.c 		sbi->s_es->s_last_orphan = cpu_to_le32(inode->i_ino);
sbi              2953 fs/ext4/namei.c 	list_add(&EXT4_I(inode)->i_orphan, &sbi->s_orphan);
sbi              2954 fs/ext4/namei.c 	mutex_unlock(&sbi->s_orphan_lock);
sbi              2967 fs/ext4/namei.c 			mutex_lock(&sbi->s_orphan_lock);
sbi              2969 fs/ext4/namei.c 			mutex_unlock(&sbi->s_orphan_lock);
sbi              2990 fs/ext4/namei.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2995 fs/ext4/namei.c 	if (!sbi->s_journal && !(sbi->s_mount_state & EXT4_ORPHAN_FS))
sbi              3009 fs/ext4/namei.c 	mutex_lock(&sbi->s_orphan_lock);
sbi              3020 fs/ext4/namei.c 		mutex_unlock(&sbi->s_orphan_lock);
sbi              3025 fs/ext4/namei.c 	if (prev == &sbi->s_orphan) {
sbi              3027 fs/ext4/namei.c 		BUFFER_TRACE(sbi->s_sbh, "get_write_access");
sbi              3028 fs/ext4/namei.c 		err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi              3030 fs/ext4/namei.c 			mutex_unlock(&sbi->s_orphan_lock);
sbi              3033 fs/ext4/namei.c 		sbi->s_es->s_last_orphan = cpu_to_le32(ino_next);
sbi              3034 fs/ext4/namei.c 		mutex_unlock(&sbi->s_orphan_lock);
sbi              3045 fs/ext4/namei.c 			mutex_unlock(&sbi->s_orphan_lock);
sbi              3050 fs/ext4/namei.c 		mutex_unlock(&sbi->s_orphan_lock);
sbi               192 fs/ext4/page-io.c 	struct ext4_sb_info *sbi = EXT4_SB(io_end->inode->i_sb);
sbi               198 fs/ext4/page-io.c 	WARN_ON(!io_end->handle && sbi->s_journal);
sbi               200 fs/ext4/page-io.c 	wq = sbi->rsv_conversion_wq;
sbi                49 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi                60 fs/ext4/resize.c 	if (EXT4_B2C(sbi, sbi->s_sbh->b_blocknr) !=
sbi               118 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               119 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi               123 fs/ext4/resize.c 	ext4_fsblk_t itend = input->inode_table + sbi->s_itb_per_group;
sbi               130 fs/ext4/resize.c 	if (group != sbi->s_groups_count) {
sbi               132 fs/ext4/resize.c 			     input->group, sbi->s_groups_count);
sbi               139 fs/ext4/resize.c 		input->blocks_count - 2 - overhead - sbi->s_itb_per_group;
sbi               455 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               468 fs/ext4/resize.c 		group = ext4_get_group_number(sb, EXT4_C2B(sbi, first_cluster));
sbi               469 fs/ext4/resize.c 		start = EXT4_B2C(sbi, ext4_group_first_block_no(sb, group));
sbi               528 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               529 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi               539 fs/ext4/resize.c 	       group_data[0].group != sbi->s_groups_count);
sbi               590 fs/ext4/resize.c 			memcpy(gdb->b_data, sbi_array_rcu_deref(sbi,
sbi               620 fs/ext4/resize.c 			   block, sbi->s_itb_per_group);
sbi               621 fs/ext4/resize.c 		err = sb_issue_zeroout(sb, block, sbi->s_itb_per_group,
sbi               646 fs/ext4/resize.c 				      EXT4_NUM_B2C(sbi, overhead));
sbi               648 fs/ext4/resize.c 		ext4_mark_bitmap_end(EXT4_B2C(sbi, group_data[i].blocks_count),
sbi               692 fs/ext4/resize.c 						      EXT4_B2C(sbi, start),
sbi               693 fs/ext4/resize.c 						      EXT4_B2C(sbi,
sbi               706 fs/ext4/resize.c 						      EXT4_B2C(sbi, start),
sbi               707 fs/ext4/resize.c 						      EXT4_B2C(sbi,
sbi              1112 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1132 fs/ext4/resize.c 		last = sbi->s_groups_count;
sbi              1138 fs/ext4/resize.c 	while (group < sbi->s_groups_count) {
sbi              1203 fs/ext4/resize.c 		sbi->s_mount_state &= ~EXT4_VALID_FS;
sbi              1204 fs/ext4/resize.c 		sbi->s_es->s_state &= cpu_to_le16(~EXT4_VALID_FS);
sbi              1205 fs/ext4/resize.c 		mark_buffer_dirty(sbi->s_sbh);
sbi              1223 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1224 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1244 fs/ext4/resize.c 			gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc,
sbi              1311 fs/ext4/resize.c 	struct ext4_sb_info		*sbi = EXT4_SB(sb);
sbi              1327 fs/ext4/resize.c 		gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc, gdb_num);
sbi              1382 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1383 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1399 fs/ext4/resize.c 		free_blocks += EXT4_C2B(sbi, group_data[i].free_clusters_count);
sbi              1436 fs/ext4/resize.c 	sbi->s_groups_count += flex_gd->count;
sbi              1437 fs/ext4/resize.c 	sbi->s_blockfile_groups = min_t(ext4_group_t, sbi->s_groups_count,
sbi              1446 fs/ext4/resize.c 	percpu_counter_add(&sbi->s_freeclusters_counter,
sbi              1447 fs/ext4/resize.c 			   EXT4_NUM_B2C(sbi, free_blocks));
sbi              1448 fs/ext4/resize.c 	percpu_counter_add(&sbi->s_freeinodes_counter,
sbi              1452 fs/ext4/resize.c 		   percpu_counter_read(&sbi->s_freeclusters_counter));
sbi              1453 fs/ext4/resize.c 	if (ext4_has_feature_flex_bg(sb) && sbi->s_log_groups_per_flex) {
sbi              1457 fs/ext4/resize.c 		flex_group = ext4_flex_group(sbi, group_data[0].group);
sbi              1458 fs/ext4/resize.c 		fg = sbi_array_rcu_deref(sbi, s_flex_groups, flex_group);
sbi              1459 fs/ext4/resize.c 		atomic64_add(EXT4_NUM_B2C(sbi, free_blocks),
sbi              1484 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1485 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1520 fs/ext4/resize.c 	BUFFER_TRACE(sbi->s_sbh, "get_write_access");
sbi              1521 fs/ext4/resize.c 	err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi              1526 fs/ext4/resize.c 	BUG_ON(group != sbi->s_groups_count);
sbi              1552 fs/ext4/resize.c 		update_backups(sb, sbi->s_sbh->b_blocknr, (char *)es,
sbi              1557 fs/ext4/resize.c 			gdb_bh = sbi_array_rcu_deref(sbi, s_group_desc,
sbi              1575 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1576 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1625 fs/ext4/resize.c 		group_data[i - 1].blocks_count = EXT4_C2B(sbi, last + 1);
sbi              1649 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1650 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1856 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1857 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1873 fs/ext4/resize.c 					     (9 - sbi->s_cluster_bits)))
sbi              1892 fs/ext4/resize.c 	BUFFER_TRACE(sbi->s_sbh, "get_write_access");
sbi              1893 fs/ext4/resize.c 	err = ext4_journal_get_write_access(handle, sbi->s_sbh);
sbi              1899 fs/ext4/resize.c 	sbi->s_es->s_first_meta_bg =
sbi              1900 fs/ext4/resize.c 		cpu_to_le32(num_desc_blocks(sb, sbi->s_groups_count));
sbi              1941 fs/ext4/resize.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1942 fs/ext4/resize.c 	struct ext4_super_block *es = sbi->s_es;
sbi              1953 fs/ext4/resize.c 	int err = 0, flexbg_size = 1 << sbi->s_log_groups_per_flex;
sbi              1988 fs/ext4/resize.c 	o_desc_blocks = num_desc_blocks(sb, sbi->s_groups_count);
sbi              2043 fs/ext4/resize.c 	     sbi->s_itb_per_group + sbi->s_cluster_ratio) >= n_blocks_count) {
sbi              2058 fs/ext4/resize.c 		add = EXT4_C2B(sbi, EXT4_CLUSTERS_PER_GROUP(sb) - (offset + 1));
sbi               179 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               183 fs/ext4/super.c 	csum = ext4_chksum(sbi, ~0, (char *)es, offset);
sbi               415 fs/ext4/super.c 	struct ext4_sb_info		*sbi = EXT4_SB(sb);
sbi               423 fs/ext4/super.c 	spin_lock(&sbi->s_md_lock);
sbi               428 fs/ext4/super.c 		spin_unlock(&sbi->s_md_lock);
sbi               430 fs/ext4/super.c 		spin_lock(&sbi->s_md_lock);
sbi               432 fs/ext4/super.c 	spin_unlock(&sbi->s_md_lock);
sbi               830 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               839 fs/ext4/super.c 			percpu_counter_sub(&sbi->s_freeclusters_counter,
sbi               850 fs/ext4/super.c 			percpu_counter_sub(&sbi->s_freeinodes_counter,
sbi               908 fs/ext4/super.c static void ext4_blkdev_remove(struct ext4_sb_info *sbi)
sbi               911 fs/ext4/super.c 	bdev = sbi->journal_bdev;
sbi               914 fs/ext4/super.c 		sbi->journal_bdev = NULL;
sbi               923 fs/ext4/super.c static void dump_orphan_list(struct super_block *sb, struct ext4_sb_info *sbi)
sbi               928 fs/ext4/super.c 		 le32_to_cpu(sbi->s_es->s_last_orphan));
sbi               931 fs/ext4/super.c 	list_for_each(l, &sbi->s_orphan) {
sbi               958 fs/ext4/super.c 				struct ext4_sb_info *sbi,
sbi               961 fs/ext4/super.c 	return rcu_dereference_protected(sbi->s_qf_names[type],
sbi               972 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               973 fs/ext4/super.c 	struct ext4_super_block *es = sbi->s_es;
sbi               982 fs/ext4/super.c 	destroy_workqueue(sbi->rsv_conversion_wq);
sbi               984 fs/ext4/super.c 	if (sbi->s_journal) {
sbi               985 fs/ext4/super.c 		aborted = is_journal_aborted(sbi->s_journal);
sbi               986 fs/ext4/super.c 		err = jbd2_journal_destroy(sbi->s_journal);
sbi               987 fs/ext4/super.c 		sbi->s_journal = NULL;
sbi               993 fs/ext4/super.c 	ext4_es_unregister_shrinker(sbi);
sbi               994 fs/ext4/super.c 	del_timer_sync(&sbi->s_err_report);
sbi              1001 fs/ext4/super.c 		es->s_state = cpu_to_le16(sbi->s_mount_state);
sbi              1007 fs/ext4/super.c 	group_desc = rcu_dereference(sbi->s_group_desc);
sbi              1008 fs/ext4/super.c 	for (i = 0; i < sbi->s_gdb_count; i++)
sbi              1011 fs/ext4/super.c 	flex_groups = rcu_dereference(sbi->s_flex_groups);
sbi              1013 fs/ext4/super.c 		for (i = 0; i < sbi->s_flex_groups_allocated; i++)
sbi              1018 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_freeclusters_counter);
sbi              1019 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
sbi              1020 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_dirs_counter);
sbi              1021 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_dirtyclusters_counter);
sbi              1022 fs/ext4/super.c 	percpu_free_rwsem(&sbi->s_writepages_rwsem);
sbi              1025 fs/ext4/super.c 		kfree(get_qf_name(sb, sbi, i));
sbi              1032 fs/ext4/super.c 	if (!list_empty(&sbi->s_orphan))
sbi              1033 fs/ext4/super.c 		dump_orphan_list(sb, sbi);
sbi              1034 fs/ext4/super.c 	J_ASSERT(list_empty(&sbi->s_orphan));
sbi              1038 fs/ext4/super.c 	if (sbi->journal_bdev && sbi->journal_bdev != sb->s_bdev) {
sbi              1044 fs/ext4/super.c 		sync_blockdev(sbi->journal_bdev);
sbi              1045 fs/ext4/super.c 		invalidate_bdev(sbi->journal_bdev);
sbi              1046 fs/ext4/super.c 		ext4_blkdev_remove(sbi);
sbi              1049 fs/ext4/super.c 	ext4_xattr_destroy_cache(sbi->s_ea_inode_cache);
sbi              1050 fs/ext4/super.c 	sbi->s_ea_inode_cache = NULL;
sbi              1052 fs/ext4/super.c 	ext4_xattr_destroy_cache(sbi->s_ea_block_cache);
sbi              1053 fs/ext4/super.c 	sbi->s_ea_block_cache = NULL;
sbi              1055 fs/ext4/super.c 	if (sbi->s_mmp_tsk)
sbi              1056 fs/ext4/super.c 		kthread_stop(sbi->s_mmp_tsk);
sbi              1057 fs/ext4/super.c 	brelse(sbi->s_sbh);
sbi              1063 fs/ext4/super.c 	kobject_put(&sbi->s_kobj);
sbi              1064 fs/ext4/super.c 	wait_for_completion(&sbi->s_kobj_unregister);
sbi              1065 fs/ext4/super.c 	if (sbi->s_chksum_driver)
sbi              1066 fs/ext4/super.c 		crypto_free_shash(sbi->s_chksum_driver);
sbi              1067 fs/ext4/super.c 	kfree(sbi->s_blockgroup_lock);
sbi              1068 fs/ext4/super.c 	fs_put_dax(sbi->s_daxdev);
sbi              1070 fs/ext4/super.c 	utf8_unload(sbi->s_encoding);
sbi              1072 fs/ext4/super.c 	kfree(sbi);
sbi              1598 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1599 fs/ext4/super.c 	char *qname, *old_qname = get_qf_name(sb, sbi, qtype);
sbi              1633 fs/ext4/super.c 	rcu_assign_pointer(sbi->s_qf_names[qtype], qname);
sbi              1644 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1645 fs/ext4/super.c 	char *old_qname = get_qf_name(sb, sbi, qtype);
sbi              1652 fs/ext4/super.c 	rcu_assign_pointer(sbi->s_qf_names[qtype], NULL);
sbi              1806 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              1833 fs/ext4/super.c 		sbi->s_mount_flags |= EXT4_MF_FS_ABORTED;
sbi              1899 fs/ext4/super.c 		sbi->s_commit_interval = HZ * arg;
sbi              1903 fs/ext4/super.c 		    (arg > (sbi->s_inode_size - EXT4_GOOD_OLD_INODE_SIZE))) {
sbi              1908 fs/ext4/super.c 		sbi->s_want_extra_isize = arg;
sbi              1910 fs/ext4/super.c 		sbi->s_max_batch_time = arg;
sbi              1912 fs/ext4/super.c 		sbi->s_min_batch_time = arg;
sbi              1920 fs/ext4/super.c 		sbi->s_inode_readahead_blks = arg;
sbi              1925 fs/ext4/super.c 		sbi->s_li_wait_mult = arg;
sbi              1927 fs/ext4/super.c 		sbi->s_max_dir_size_kb = arg;
sbi              1929 fs/ext4/super.c 		sbi->s_stripe = arg;
sbi              1936 fs/ext4/super.c 		sbi->s_resuid = uid;
sbi              1943 fs/ext4/super.c 		sbi->s_resgid = gid;
sbi              1999 fs/ext4/super.c 		sbi->s_mount_flags |= EXT4_MF_TEST_DUMMY_ENCRYPTION;
sbi              2008 fs/ext4/super.c 			if (!sbi->s_journal)
sbi              2017 fs/ext4/super.c 			sbi->s_mount_opt |= m->mount_opt;
sbi              2022 fs/ext4/super.c 		    sbi->s_jquota_fmt != m->mount_opt) {
sbi              2033 fs/ext4/super.c 		sbi->s_jquota_fmt = m->mount_opt;
sbi              2039 fs/ext4/super.c 		sbi->s_mount_opt |= m->mount_opt;
sbi              2045 fs/ext4/super.c 		sbi->s_mount_opt |= m->mount_opt;
sbi              2047 fs/ext4/super.c 		sbi->s_mount_opt &= ~m->mount_opt;
sbi              2060 fs/ext4/super.c 			sbi->s_mount_opt |= m->mount_opt;
sbi              2062 fs/ext4/super.c 			sbi->s_mount_opt &= ~m->mount_opt;
sbi              2072 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2104 fs/ext4/super.c 	usr_qf_name = get_qf_name(sb, sbi, USRQUOTA);
sbi              2105 fs/ext4/super.c 	grp_qf_name = get_qf_name(sb, sbi, GRPQUOTA);
sbi              2119 fs/ext4/super.c 		if (!sbi->s_jquota_fmt) {
sbi              2128 fs/ext4/super.c 			BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size);
sbi              2143 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2146 fs/ext4/super.c 	if (sbi->s_jquota_fmt) {
sbi              2149 fs/ext4/super.c 		switch (sbi->s_jquota_fmt) {
sbi              2164 fs/ext4/super.c 	usr_qf_name = rcu_dereference(sbi->s_qf_names[USRQUOTA]);
sbi              2165 fs/ext4/super.c 	grp_qf_name = rcu_dereference(sbi->s_qf_names[GRPQUOTA]);
sbi              2192 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2193 fs/ext4/super.c 	struct ext4_super_block *es = sbi->s_es;
sbi              2194 fs/ext4/super.c 	int def_errors, def_mount_opt = sbi->s_def_mount_opt;
sbi              2201 fs/ext4/super.c 	if (sbi->s_sb_block != 1)
sbi              2202 fs/ext4/super.c 		SEQ_OPTS_PRINT("sb=%llu", sbi->s_sb_block);
sbi              2209 fs/ext4/super.c 		if (!nodefs && !(m->mount_opt & (sbi->s_mount_opt ^ def_mount_opt)))
sbi              2212 fs/ext4/super.c 		     (sbi->s_mount_opt & m->mount_opt) != m->mount_opt) ||
sbi              2213 fs/ext4/super.c 		    (!want_set && (sbi->s_mount_opt & m->mount_opt)))
sbi              2218 fs/ext4/super.c 	if (nodefs || !uid_eq(sbi->s_resuid, make_kuid(&init_user_ns, EXT4_DEF_RESUID)) ||
sbi              2221 fs/ext4/super.c 				from_kuid_munged(&init_user_ns, sbi->s_resuid));
sbi              2222 fs/ext4/super.c 	if (nodefs || !gid_eq(sbi->s_resgid, make_kgid(&init_user_ns, EXT4_DEF_RESGID)) ||
sbi              2225 fs/ext4/super.c 				from_kgid_munged(&init_user_ns, sbi->s_resgid));
sbi              2233 fs/ext4/super.c 	if (nodefs || sbi->s_commit_interval != JBD2_DEFAULT_MAX_COMMIT_AGE*HZ)
sbi              2234 fs/ext4/super.c 		SEQ_OPTS_PRINT("commit=%lu", sbi->s_commit_interval / HZ);
sbi              2235 fs/ext4/super.c 	if (nodefs || sbi->s_min_batch_time != EXT4_DEF_MIN_BATCH_TIME)
sbi              2236 fs/ext4/super.c 		SEQ_OPTS_PRINT("min_batch_time=%u", sbi->s_min_batch_time);
sbi              2237 fs/ext4/super.c 	if (nodefs || sbi->s_max_batch_time != EXT4_DEF_MAX_BATCH_TIME)
sbi              2238 fs/ext4/super.c 		SEQ_OPTS_PRINT("max_batch_time=%u", sbi->s_max_batch_time);
sbi              2241 fs/ext4/super.c 	if (nodefs || sbi->s_stripe)
sbi              2242 fs/ext4/super.c 		SEQ_OPTS_PRINT("stripe=%lu", sbi->s_stripe);
sbi              2244 fs/ext4/super.c 			(sbi->s_mount_opt ^ def_mount_opt)) {
sbi              2253 fs/ext4/super.c 	    sbi->s_inode_readahead_blks != EXT4_DEF_INODE_READAHEAD_BLKS)
sbi              2255 fs/ext4/super.c 			       sbi->s_inode_readahead_blks);
sbi              2258 fs/ext4/super.c 		       (sbi->s_li_wait_mult != EXT4_DEF_LI_WAIT_MULT)))
sbi              2259 fs/ext4/super.c 		SEQ_OPTS_PRINT("init_itable=%u", sbi->s_li_wait_mult);
sbi              2260 fs/ext4/super.c 	if (nodefs || sbi->s_max_dir_size_kb)
sbi              2261 fs/ext4/super.c 		SEQ_OPTS_PRINT("max_dir_size_kb=%u", sbi->s_max_dir_size_kb);
sbi              2264 fs/ext4/super.c 	if (DUMMY_ENCRYPTION_ENABLED(sbi))
sbi              2290 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2300 fs/ext4/super.c 	if (!(sbi->s_mount_state & EXT4_VALID_FS))
sbi              2303 fs/ext4/super.c 	else if (sbi->s_mount_state & EXT4_ERROR_FS)
sbi              2319 fs/ext4/super.c 	if (!sbi->s_journal)
sbi              2325 fs/ext4/super.c 	if (sbi->s_journal)
sbi              2334 fs/ext4/super.c 			sbi->s_groups_count,
sbi              2337 fs/ext4/super.c 			sbi->s_mount_opt, sbi->s_mount_opt2);
sbi              2345 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2349 fs/ext4/super.c 	if (!sbi->s_log_groups_per_flex)
sbi              2352 fs/ext4/super.c 	size = ext4_flex_group(sbi, ngroup - 1) + 1;
sbi              2353 fs/ext4/super.c 	if (size <= sbi->s_flex_groups_allocated)
sbi              2357 fs/ext4/super.c 			      sizeof(*sbi->s_flex_groups)), GFP_KERNEL);
sbi              2363 fs/ext4/super.c 	for (i = sbi->s_flex_groups_allocated; i < size; i++) {
sbi              2368 fs/ext4/super.c 			for (j = sbi->s_flex_groups_allocated; j < i; j++)
sbi              2377 fs/ext4/super.c 	old_groups = rcu_dereference(sbi->s_flex_groups);
sbi              2380 fs/ext4/super.c 		       (sbi->s_flex_groups_allocated *
sbi              2383 fs/ext4/super.c 	rcu_assign_pointer(sbi->s_flex_groups, new_groups);
sbi              2384 fs/ext4/super.c 	sbi->s_flex_groups_allocated = size;
sbi              2392 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2398 fs/ext4/super.c 	sbi->s_log_groups_per_flex = sbi->s_es->s_log_groups_per_flex;
sbi              2399 fs/ext4/super.c 	if (sbi->s_log_groups_per_flex < 1 || sbi->s_log_groups_per_flex > 31) {
sbi              2400 fs/ext4/super.c 		sbi->s_log_groups_per_flex = 0;
sbi              2404 fs/ext4/super.c 	err = ext4_alloc_flex_bg_array(sb, sbi->s_groups_count);
sbi              2408 fs/ext4/super.c 	for (i = 0; i < sbi->s_groups_count; i++) {
sbi              2411 fs/ext4/super.c 		flex_group = ext4_flex_group(sbi, i);
sbi              2412 fs/ext4/super.c 		fg = sbi_array_rcu_deref(sbi, s_flex_groups, flex_group);
sbi              2430 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2432 fs/ext4/super.c 	if (ext4_has_metadata_csum(sbi->s_sb)) {
sbi              2437 fs/ext4/super.c 		csum32 = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)&le_group,
sbi              2439 fs/ext4/super.c 		csum32 = ext4_chksum(sbi, csum32, (__u8 *)gdp, offset);
sbi              2440 fs/ext4/super.c 		csum32 = ext4_chksum(sbi, csum32, (__u8 *)&dummy_csum,
sbi              2443 fs/ext4/super.c 		if (offset < sbi->s_desc_size)
sbi              2444 fs/ext4/super.c 			csum32 = ext4_chksum(sbi, csum32, (__u8 *)gdp + offset,
sbi              2445 fs/ext4/super.c 					     sbi->s_desc_size - offset);
sbi              2455 fs/ext4/super.c 	crc = crc16(~0, sbi->s_es->s_uuid, sizeof(sbi->s_es->s_uuid));
sbi              2461 fs/ext4/super.c 	    offset < le16_to_cpu(sbi->s_es->s_desc_size))
sbi              2463 fs/ext4/super.c 			    le16_to_cpu(sbi->s_es->s_desc_size) -
sbi              2493 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2494 fs/ext4/super.c 	ext4_fsblk_t first_block = le32_to_cpu(sbi->s_es->s_first_data_block);
sbi              2501 fs/ext4/super.c 	ext4_group_t i, grp = sbi->s_groups_count;
sbi              2508 fs/ext4/super.c 	for (i = 0; i < sbi->s_groups_count; i++) {
sbi              2511 fs/ext4/super.c 		if (i == sbi->s_groups_count - 1 || flexbg_flag)
sbi              2512 fs/ext4/super.c 			last_block = ext4_blocks_count(sbi->s_es) - 1;
sbi              2517 fs/ext4/super.c 		if ((grp == sbi->s_groups_count) &&
sbi              2582 fs/ext4/super.c 		    inode_table + sbi->s_itb_per_group - 1 > last_block) {
sbi              2878 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              2882 fs/ext4/super.c 	first_meta_bg = le32_to_cpu(sbi->s_es->s_first_meta_bg);
sbi              2886 fs/ext4/super.c 	bg = sbi->s_desc_per_block * nr;
sbi              2897 fs/ext4/super.c 	    le32_to_cpu(sbi->s_es->s_first_data_block) == 0)
sbi              2914 fs/ext4/super.c static unsigned long ext4_get_stripe_size(struct ext4_sb_info *sbi)
sbi              2916 fs/ext4/super.c 	unsigned long stride = le16_to_cpu(sbi->s_es->s_raid_stride);
sbi              2918 fs/ext4/super.c 			le32_to_cpu(sbi->s_es->s_raid_stripe_width);
sbi              2921 fs/ext4/super.c 	if (sbi->s_stripe && sbi->s_stripe <= sbi->s_blocks_per_group)
sbi              2922 fs/ext4/super.c 		ret = sbi->s_stripe;
sbi              2923 fs/ext4/super.c 	else if (stripe_width && stripe_width <= sbi->s_blocks_per_group)
sbi              2925 fs/ext4/super.c 	else if (stride && stride <= sbi->s_blocks_per_group)
sbi              3007 fs/ext4/super.c 	struct ext4_sb_info *sbi = from_timer(sbi, t, s_err_report);
sbi              3008 fs/ext4/super.c 	struct super_block *sb = sbi->s_sb;
sbi              3009 fs/ext4/super.c 	struct ext4_super_block *es = sbi->s_es;
sbi              3045 fs/ext4/super.c 	mod_timer(&sbi->s_err_report, jiffies + 24*60*60*HZ);  /* Once a day */
sbi              3095 fs/ext4/super.c 	struct ext4_sb_info *sbi;
sbi              3100 fs/ext4/super.c 	sbi = elr->lr_sbi;
sbi              3103 fs/ext4/super.c 	sbi->s_li_request = NULL;
sbi              3312 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3320 fs/ext4/super.c 	elr->lr_sbi = sbi;
sbi              3336 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3338 fs/ext4/super.c 	ext4_group_t ngroups = sbi->s_groups_count;
sbi              3342 fs/ext4/super.c 	if (sbi->s_li_request != NULL) {
sbi              3347 fs/ext4/super.c 		sbi->s_li_request->lr_timeout = 0;
sbi              3371 fs/ext4/super.c 	sbi->s_li_request = elr;
sbi              3411 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3423 fs/ext4/super.c 	jbd2_journal_clear_features(sbi->s_journal,
sbi              3428 fs/ext4/super.c 		ret = jbd2_journal_set_features(sbi->s_journal,
sbi              3433 fs/ext4/super.c 		ret = jbd2_journal_set_features(sbi->s_journal,
sbi              3436 fs/ext4/super.c 		jbd2_journal_clear_features(sbi->s_journal, 0, 0,
sbi              3439 fs/ext4/super.c 		jbd2_journal_clear_features(sbi->s_journal, 0, 0,
sbi              3464 fs/ext4/super.c 	struct ext4_sb_info	*sbi = EXT4_SB(sb);
sbi              3472 fs/ext4/super.c 			sbi->s_itb_per_group + 2);
sbi              3474 fs/ext4/super.c 	first_block = le32_to_cpu(sbi->s_es->s_first_data_block) +
sbi              3481 fs/ext4/super.c 			ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf);
sbi              3486 fs/ext4/super.c 			ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf);
sbi              3490 fs/ext4/super.c 		if (b >= first_block && b + sbi->s_itb_per_group <= last_block)
sbi              3491 fs/ext4/super.c 			for (j = 0; j < sbi->s_itb_per_group; j++, b++) {
sbi              3492 fs/ext4/super.c 				int c = EXT4_B2C(sbi, b - first_block);
sbi              3511 fs/ext4/super.c 			ext4_set_bit(EXT4_B2C(sbi, s++), buf);
sbi              3524 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3525 fs/ext4/super.c 	struct ext4_super_block *es = sbi->s_es;
sbi              3544 fs/ext4/super.c 	overhead = EXT4_B2C(sbi, le32_to_cpu(es->s_first_data_block));
sbi              3563 fs/ext4/super.c 	if (sbi->s_journal && !sbi->journal_bdev)
sbi              3564 fs/ext4/super.c 		overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen);
sbi              3565 fs/ext4/super.c 	else if (ext4_has_feature_journal(sb) && !sbi->s_journal && j_inum) {
sbi              3570 fs/ext4/super.c 			overhead += EXT4_NUM_B2C(sbi, j_blocks);
sbi              3576 fs/ext4/super.c 	sbi->s_overhead = overhead;
sbi              3585 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              3603 fs/ext4/super.c 	resv_clusters = (ext4_blocks_count(sbi->s_es) >>
sbi              3604 fs/ext4/super.c 			 sbi->s_cluster_bits);
sbi              3609 fs/ext4/super.c 	atomic64_set(&sbi->s_resv_clusters, resv_clusters);
sbi              3618 fs/ext4/super.c 	struct ext4_sb_info *sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi              3638 fs/ext4/super.c 	if ((data && !orig_data) || !sbi)
sbi              3641 fs/ext4/super.c 	sbi->s_daxdev = dax_dev;
sbi              3642 fs/ext4/super.c 	sbi->s_blockgroup_lock =
sbi              3644 fs/ext4/super.c 	if (!sbi->s_blockgroup_lock)
sbi              3647 fs/ext4/super.c 	sb->s_fs_info = sbi;
sbi              3648 fs/ext4/super.c 	sbi->s_sb = sb;
sbi              3649 fs/ext4/super.c 	sbi->s_inode_readahead_blks = EXT4_DEF_INODE_READAHEAD_BLKS;
sbi              3650 fs/ext4/super.c 	sbi->s_sb_block = sb_block;
sbi              3652 fs/ext4/super.c 		sbi->s_sectors_written_start =
sbi              3686 fs/ext4/super.c 	sbi->s_es = es;
sbi              3690 fs/ext4/super.c 	sbi->s_kbytes_written = le64_to_cpu(es->s_kbytes_written);
sbi              3707 fs/ext4/super.c 	sbi->s_chksum_driver = crypto_alloc_shash("crc32c", 0, 0);
sbi              3708 fs/ext4/super.c 	if (IS_ERR(sbi->s_chksum_driver)) {
sbi              3710 fs/ext4/super.c 		ret = PTR_ERR(sbi->s_chksum_driver);
sbi              3711 fs/ext4/super.c 		sbi->s_chksum_driver = NULL;
sbi              3726 fs/ext4/super.c 		sbi->s_csum_seed = le32_to_cpu(es->s_checksum_seed);
sbi              3728 fs/ext4/super.c 		sbi->s_csum_seed = ext4_chksum(sbi, ~0, es->s_uuid,
sbi              3756 fs/ext4/super.c 	if (le16_to_cpu(sbi->s_es->s_errors) == EXT4_ERRORS_PANIC)
sbi              3758 fs/ext4/super.c 	else if (le16_to_cpu(sbi->s_es->s_errors) == EXT4_ERRORS_CONTINUE)
sbi              3767 fs/ext4/super.c 	sbi->s_resuid = make_kuid(&init_user_ns, le16_to_cpu(es->s_def_resuid));
sbi              3768 fs/ext4/super.c 	sbi->s_resgid = make_kgid(&init_user_ns, le16_to_cpu(es->s_def_resgid));
sbi              3769 fs/ext4/super.c 	sbi->s_commit_interval = JBD2_DEFAULT_MAX_COMMIT_AGE * HZ;
sbi              3770 fs/ext4/super.c 	sbi->s_min_batch_time = EXT4_DEF_MIN_BATCH_TIME;
sbi              3771 fs/ext4/super.c 	sbi->s_max_batch_time = EXT4_DEF_MAX_BATCH_TIME;
sbi              3788 fs/ext4/super.c 	sbi->s_li_wait_mult = EXT4_DEF_LI_WAIT_MULT;
sbi              3800 fs/ext4/super.c 		sbi->s_inode_size = EXT4_GOOD_OLD_INODE_SIZE;
sbi              3801 fs/ext4/super.c 		sbi->s_first_ino = EXT4_GOOD_OLD_FIRST_INO;
sbi              3803 fs/ext4/super.c 		sbi->s_inode_size = le16_to_cpu(es->s_inode_size);
sbi              3804 fs/ext4/super.c 		sbi->s_first_ino = le32_to_cpu(es->s_first_ino);
sbi              3805 fs/ext4/super.c 		if (sbi->s_first_ino < EXT4_GOOD_OLD_FIRST_INO) {
sbi              3807 fs/ext4/super.c 				 sbi->s_first_ino);
sbi              3810 fs/ext4/super.c 		if ((sbi->s_inode_size < EXT4_GOOD_OLD_INODE_SIZE) ||
sbi              3811 fs/ext4/super.c 		    (!is_power_of_2(sbi->s_inode_size)) ||
sbi              3812 fs/ext4/super.c 		    (sbi->s_inode_size > blocksize)) {
sbi              3815 fs/ext4/super.c 			       sbi->s_inode_size);
sbi              3825 fs/ext4/super.c 		if (sbi->s_inode_size >= offsetof(struct ext4_inode, i_atime_extra) +
sbi              3835 fs/ext4/super.c 	if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE) {
sbi              3836 fs/ext4/super.c 		sbi->s_want_extra_isize = sizeof(struct ext4_inode) -
sbi              3839 fs/ext4/super.c 			unsigned v, max = (sbi->s_inode_size -
sbi              3848 fs/ext4/super.c 			if (sbi->s_want_extra_isize < v)
sbi              3849 fs/ext4/super.c 				sbi->s_want_extra_isize = v;
sbi              3857 fs/ext4/super.c 			if (sbi->s_want_extra_isize < v)
sbi              3858 fs/ext4/super.c 				sbi->s_want_extra_isize = v;
sbi              3862 fs/ext4/super.c 	if (sbi->s_es->s_mount_opts[0]) {
sbi              3863 fs/ext4/super.c 		char *s_mount_opts = kstrndup(sbi->s_es->s_mount_opts,
sbi              3864 fs/ext4/super.c 					      sizeof(sbi->s_es->s_mount_opts),
sbi              3876 fs/ext4/super.c 	sbi->s_def_mount_opt = sbi->s_mount_opt;
sbi              3882 fs/ext4/super.c 	if (ext4_has_feature_casefold(sb) && !sbi->s_encoding) {
sbi              3913 fs/ext4/super.c 		sbi->s_encoding = encoding;
sbi              3914 fs/ext4/super.c 		sbi->s_encoding_flags = encoding_flags;
sbi              4035 fs/ext4/super.c 	if (le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks) > (blocksize / 4)) {
sbi              4038 fs/ext4/super.c 			 le16_to_cpu(sbi->s_es->s_reserved_gdt_blocks));
sbi              4042 fs/ext4/super.c 	if (sbi->s_mount_opt & EXT4_MOUNT_DAX) {
sbi              4079 fs/ext4/super.c 		sbi->s_es = es;
sbi              4088 fs/ext4/super.c 	sbi->s_bitmap_maxbytes = ext4_max_bitmap_size(sb->s_blocksize_bits,
sbi              4092 fs/ext4/super.c 	sbi->s_desc_size = le16_to_cpu(es->s_desc_size);
sbi              4094 fs/ext4/super.c 		if (sbi->s_desc_size < EXT4_MIN_DESC_SIZE_64BIT ||
sbi              4095 fs/ext4/super.c 		    sbi->s_desc_size > EXT4_MAX_DESC_SIZE ||
sbi              4096 fs/ext4/super.c 		    !is_power_of_2(sbi->s_desc_size)) {
sbi              4099 fs/ext4/super.c 			       sbi->s_desc_size);
sbi              4103 fs/ext4/super.c 		sbi->s_desc_size = EXT4_MIN_DESC_SIZE;
sbi              4105 fs/ext4/super.c 	sbi->s_blocks_per_group = le32_to_cpu(es->s_blocks_per_group);
sbi              4106 fs/ext4/super.c 	sbi->s_inodes_per_group = le32_to_cpu(es->s_inodes_per_group);
sbi              4108 fs/ext4/super.c 	sbi->s_inodes_per_block = blocksize / EXT4_INODE_SIZE(sb);
sbi              4109 fs/ext4/super.c 	if (sbi->s_inodes_per_block == 0)
sbi              4111 fs/ext4/super.c 	if (sbi->s_inodes_per_group < sbi->s_inodes_per_block ||
sbi              4112 fs/ext4/super.c 	    sbi->s_inodes_per_group > blocksize * 8) {
sbi              4114 fs/ext4/super.c 			 sbi->s_inodes_per_group);
sbi              4117 fs/ext4/super.c 	sbi->s_itb_per_group = sbi->s_inodes_per_group /
sbi              4118 fs/ext4/super.c 					sbi->s_inodes_per_block;
sbi              4119 fs/ext4/super.c 	sbi->s_desc_per_block = blocksize / EXT4_DESC_SIZE(sb);
sbi              4120 fs/ext4/super.c 	sbi->s_sbh = bh;
sbi              4121 fs/ext4/super.c 	sbi->s_mount_state = le16_to_cpu(es->s_state);
sbi              4122 fs/ext4/super.c 	sbi->s_addr_per_block_bits = ilog2(EXT4_ADDR_PER_BLOCK(sb));
sbi              4123 fs/ext4/super.c 	sbi->s_desc_per_block_bits = ilog2(EXT4_DESC_PER_BLOCK(sb));
sbi              4126 fs/ext4/super.c 		sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]);
sbi              4127 fs/ext4/super.c 	sbi->s_def_hash_version = es->s_def_hash_version;
sbi              4131 fs/ext4/super.c 			sbi->s_hash_unsigned = 3;
sbi              4137 fs/ext4/super.c 			sbi->s_hash_unsigned = 3;
sbi              4156 fs/ext4/super.c 		sbi->s_cluster_bits = le32_to_cpu(es->s_log_cluster_size) -
sbi              4158 fs/ext4/super.c 		sbi->s_clusters_per_group =
sbi              4160 fs/ext4/super.c 		if (sbi->s_clusters_per_group > blocksize * 8) {
sbi              4163 fs/ext4/super.c 				 sbi->s_clusters_per_group);
sbi              4166 fs/ext4/super.c 		if (sbi->s_blocks_per_group !=
sbi              4167 fs/ext4/super.c 		    (sbi->s_clusters_per_group * (clustersize / blocksize))) {
sbi              4170 fs/ext4/super.c 				 sbi->s_blocks_per_group,
sbi              4171 fs/ext4/super.c 				 sbi->s_clusters_per_group);
sbi              4181 fs/ext4/super.c 		if (sbi->s_blocks_per_group > blocksize * 8) {
sbi              4184 fs/ext4/super.c 				 sbi->s_blocks_per_group);
sbi              4187 fs/ext4/super.c 		sbi->s_clusters_per_group = sbi->s_blocks_per_group;
sbi              4188 fs/ext4/super.c 		sbi->s_cluster_bits = 0;
sbi              4190 fs/ext4/super.c 	sbi->s_cluster_ratio = clustersize / blocksize;
sbi              4193 fs/ext4/super.c 	if (sbi->s_blocks_per_group == clustersize << 3)
sbi              4232 fs/ext4/super.c 	    (sbi->s_cluster_ratio == 1)) {
sbi              4251 fs/ext4/super.c 	sbi->s_groups_count = blocks_count;
sbi              4252 fs/ext4/super.c 	sbi->s_blockfile_groups = min_t(ext4_group_t, sbi->s_groups_count,
sbi              4254 fs/ext4/super.c 	if (((u64)sbi->s_groups_count * sbi->s_inodes_per_group) !=
sbi              4258 fs/ext4/super.c 			 ((u64)sbi->s_groups_count * sbi->s_inodes_per_group));
sbi              4262 fs/ext4/super.c 	db_count = (sbi->s_groups_count + EXT4_DESC_PER_BLOCK(sb) - 1) /
sbi              4273 fs/ext4/super.c 	rcu_assign_pointer(sbi->s_group_desc,
sbi              4277 fs/ext4/super.c 	if (sbi->s_group_desc == NULL) {
sbi              4283 fs/ext4/super.c 	bgl_lock_init(sbi->s_blockgroup_lock);
sbi              4303 fs/ext4/super.c 		rcu_dereference(sbi->s_group_desc)[i] = bh;
sbi              4306 fs/ext4/super.c 	sbi->s_gdb_count = db_count;
sbi              4313 fs/ext4/super.c 	timer_setup(&sbi->s_err_report, print_daily_error_info, 0);
sbi              4316 fs/ext4/super.c 	if (ext4_es_register_shrinker(sbi))
sbi              4319 fs/ext4/super.c 	sbi->s_stripe = ext4_get_stripe_size(sbi);
sbi              4320 fs/ext4/super.c 	sbi->s_extent_max_zeroout_kb = 32;
sbi              4344 fs/ext4/super.c 	INIT_LIST_HEAD(&sbi->s_orphan); /* unlinked but open files */
sbi              4345 fs/ext4/super.c 	mutex_init(&sbi->s_orphan_lock);
sbi              4381 fs/ext4/super.c 		if (sbi->s_commit_interval != JBD2_DEFAULT_MAX_COMMIT_AGE*HZ) {
sbi              4384 fs/ext4/super.c 				 sbi->s_commit_interval / HZ);
sbi              4388 fs/ext4/super.c 		    (sbi->s_mount_opt ^ sbi->s_def_mount_opt)) {
sbi              4393 fs/ext4/super.c 		sbi->s_def_mount_opt &= ~EXT4_MOUNT_JOURNAL_CHECKSUM;
sbi              4396 fs/ext4/super.c 		sbi->s_journal = NULL;
sbi              4423 fs/ext4/super.c 		    (sbi->s_journal, 0, 0, JBD2_FEATURE_INCOMPAT_REVOKE)) {
sbi              4425 fs/ext4/super.c 			sbi->s_def_mount_opt |= EXT4_MOUNT_ORDERED_DATA;
sbi              4428 fs/ext4/super.c 			sbi->s_def_mount_opt |= EXT4_MOUNT_JOURNAL_DATA;
sbi              4435 fs/ext4/super.c 		    (sbi->s_journal, 0, 0, JBD2_FEATURE_INCOMPAT_REVOKE)) {
sbi              4451 fs/ext4/super.c 	set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
sbi              4453 fs/ext4/super.c 	sbi->s_journal->j_commit_callback = ext4_journal_commit_callback;
sbi              4457 fs/ext4/super.c 		sbi->s_ea_block_cache = ext4_xattr_create_cache();
sbi              4458 fs/ext4/super.c 		if (!sbi->s_ea_block_cache) {
sbi              4465 fs/ext4/super.c 			sbi->s_ea_inode_cache = ext4_xattr_create_cache();
sbi              4466 fs/ext4/super.c 			if (!sbi->s_ea_inode_cache) {
sbi              4474 fs/ext4/super.c 	if ((DUMMY_ENCRYPTION_ENABLED(sbi) || ext4_has_feature_encrypt(sb)) &&
sbi              4486 fs/ext4/super.c 	if (DUMMY_ENCRYPTION_ENABLED(sbi) && !sb_rdonly(sb) &&
sbi              4497 fs/ext4/super.c 		sbi->s_overhead = le32_to_cpu(es->s_overhead_clusters);
sbi              4535 fs/ext4/super.c 	if (sbi->s_encoding)
sbi              4571 fs/ext4/super.c 	ext4_free_blocks_count_set(sbi->s_es, 
sbi              4572 fs/ext4/super.c 				   EXT4_C2B(sbi, block));
sbi              4574 fs/ext4/super.c 	err = percpu_counter_init(&sbi->s_freeclusters_counter, block,
sbi              4578 fs/ext4/super.c 		sbi->s_es->s_free_inodes_count = cpu_to_le32(freei);
sbi              4580 fs/ext4/super.c 		err = percpu_counter_init(&sbi->s_freeinodes_counter, freei,
sbi              4584 fs/ext4/super.c 		err = percpu_counter_init(&sbi->s_dirs_counter,
sbi              4587 fs/ext4/super.c 		err = percpu_counter_init(&sbi->s_dirtyclusters_counter, 0,
sbi              4590 fs/ext4/super.c 		err = percpu_init_rwsem(&sbi->s_writepages_rwsem);
sbi              4650 fs/ext4/super.c 			 (int) sizeof(sbi->s_es->s_mount_opts),
sbi              4651 fs/ext4/super.c 			 sbi->s_es->s_mount_opts,
sbi              4652 fs/ext4/super.c 			 *sbi->s_es->s_mount_opts ? "; " : "", orig_data);
sbi              4655 fs/ext4/super.c 		mod_timer(&sbi->s_err_report, jiffies + 300*HZ); /* 5 minutes */
sbi              4658 fs/ext4/super.c 	ratelimit_state_init(&sbi->s_err_ratelimit_state, 5 * HZ, 10);
sbi              4659 fs/ext4/super.c 	ratelimit_state_init(&sbi->s_warning_ratelimit_state, 5 * HZ, 10);
sbi              4660 fs/ext4/super.c 	ratelimit_state_init(&sbi->s_msg_ratelimit_state, 5 * HZ, 10);
sbi              4679 fs/ext4/super.c 	flex_groups = rcu_dereference(sbi->s_flex_groups);
sbi              4681 fs/ext4/super.c 		for (i = 0; i < sbi->s_flex_groups_allocated; i++)
sbi              4686 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_freeclusters_counter);
sbi              4687 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_freeinodes_counter);
sbi              4688 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_dirs_counter);
sbi              4689 fs/ext4/super.c 	percpu_counter_destroy(&sbi->s_dirtyclusters_counter);
sbi              4690 fs/ext4/super.c 	percpu_free_rwsem(&sbi->s_writepages_rwsem);
sbi              4702 fs/ext4/super.c 	ext4_xattr_destroy_cache(sbi->s_ea_inode_cache);
sbi              4703 fs/ext4/super.c 	sbi->s_ea_inode_cache = NULL;
sbi              4705 fs/ext4/super.c 	ext4_xattr_destroy_cache(sbi->s_ea_block_cache);
sbi              4706 fs/ext4/super.c 	sbi->s_ea_block_cache = NULL;
sbi              4708 fs/ext4/super.c 	if (sbi->s_journal) {
sbi              4709 fs/ext4/super.c 		jbd2_journal_destroy(sbi->s_journal);
sbi              4710 fs/ext4/super.c 		sbi->s_journal = NULL;
sbi              4713 fs/ext4/super.c 	ext4_es_unregister_shrinker(sbi);
sbi              4715 fs/ext4/super.c 	del_timer_sync(&sbi->s_err_report);
sbi              4716 fs/ext4/super.c 	if (sbi->s_mmp_tsk)
sbi              4717 fs/ext4/super.c 		kthread_stop(sbi->s_mmp_tsk);
sbi              4720 fs/ext4/super.c 	group_desc = rcu_dereference(sbi->s_group_desc);
sbi              4726 fs/ext4/super.c 	if (sbi->s_chksum_driver)
sbi              4727 fs/ext4/super.c 		crypto_free_shash(sbi->s_chksum_driver);
sbi              4730 fs/ext4/super.c 	utf8_unload(sbi->s_encoding);
sbi              4735 fs/ext4/super.c 		kfree(get_qf_name(sb, sbi, i));
sbi              4737 fs/ext4/super.c 	ext4_blkdev_remove(sbi);
sbi              4741 fs/ext4/super.c 	kfree(sbi->s_blockgroup_lock);
sbi              4743 fs/ext4/super.c 	kfree(sbi);
sbi              4756 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              4758 fs/ext4/super.c 	journal->j_commit_interval = sbi->s_commit_interval;
sbi              4759 fs/ext4/super.c 	journal->j_min_batch_time = sbi->s_min_batch_time;
sbi              4760 fs/ext4/super.c 	journal->j_max_batch_time = sbi->s_max_batch_time;
sbi              5181 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              5183 fs/ext4/super.c 	if (unlikely(ext4_forced_shutdown(sbi)))
sbi              5187 fs/ext4/super.c 	flush_workqueue(sbi->rsv_conversion_wq);
sbi              5198 fs/ext4/super.c 	if (sbi->s_journal) {
sbi              5199 fs/ext4/super.c 		target = jbd2_get_latest_transaction(sbi->s_journal);
sbi              5200 fs/ext4/super.c 		if (wait && sbi->s_journal->j_flags & JBD2_BARRIER &&
sbi              5201 fs/ext4/super.c 		    !jbd2_trans_will_send_data_barrier(sbi->s_journal, target))
sbi              5204 fs/ext4/super.c 		if (jbd2_journal_start_commit(sbi->s_journal, &target)) {
sbi              5206 fs/ext4/super.c 				ret = jbd2_log_wait_commit(sbi->s_journal,
sbi              5300 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              5318 fs/ext4/super.c 	old_opts.s_mount_opt = sbi->s_mount_opt;
sbi              5319 fs/ext4/super.c 	old_opts.s_mount_opt2 = sbi->s_mount_opt2;
sbi              5320 fs/ext4/super.c 	old_opts.s_resuid = sbi->s_resuid;
sbi              5321 fs/ext4/super.c 	old_opts.s_resgid = sbi->s_resgid;
sbi              5322 fs/ext4/super.c 	old_opts.s_commit_interval = sbi->s_commit_interval;
sbi              5323 fs/ext4/super.c 	old_opts.s_min_batch_time = sbi->s_min_batch_time;
sbi              5324 fs/ext4/super.c 	old_opts.s_max_batch_time = sbi->s_max_batch_time;
sbi              5326 fs/ext4/super.c 	old_opts.s_jquota_fmt = sbi->s_jquota_fmt;
sbi              5328 fs/ext4/super.c 		if (sbi->s_qf_names[i]) {
sbi              5329 fs/ext4/super.c 			char *qf_name = get_qf_name(sb, sbi, i);
sbi              5341 fs/ext4/super.c 	if (sbi->s_journal && sbi->s_journal->j_task->io_context)
sbi              5342 fs/ext4/super.c 		journal_ioprio = sbi->s_journal->j_task->io_context->ioprio;
sbi              5353 fs/ext4/super.c 		sbi->s_mount_opt ^= EXT4_MOUNT_JOURNAL_CHECKSUM;
sbi              5384 fs/ext4/super.c 	if ((sbi->s_mount_opt ^ old_opts.s_mount_opt) & EXT4_MOUNT_NO_MBCACHE) {
sbi              5390 fs/ext4/super.c 	if ((sbi->s_mount_opt ^ old_opts.s_mount_opt) & EXT4_MOUNT_DAX) {
sbi              5393 fs/ext4/super.c 		sbi->s_mount_opt ^= EXT4_MOUNT_DAX;
sbi              5396 fs/ext4/super.c 	if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED)
sbi              5402 fs/ext4/super.c 	es = sbi->s_es;
sbi              5404 fs/ext4/super.c 	if (sbi->s_journal) {
sbi              5405 fs/ext4/super.c 		ext4_init_journal_params(sb, sbi->s_journal);
sbi              5406 fs/ext4/super.c 		set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
sbi              5413 fs/ext4/super.c 		if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED) {
sbi              5438 fs/ext4/super.c 			    (sbi->s_mount_state & EXT4_VALID_FS))
sbi              5439 fs/ext4/super.c 				es->s_state = cpu_to_le16(sbi->s_mount_state);
sbi              5441 fs/ext4/super.c 			if (sbi->s_journal)
sbi              5443 fs/ext4/super.c 			if (sbi->s_mmp_tsk)
sbi              5444 fs/ext4/super.c 				kthread_stop(sbi->s_mmp_tsk);
sbi              5456 fs/ext4/super.c 			for (g = 0; g < sbi->s_groups_count; g++) {
sbi              5490 fs/ext4/super.c 			if (sbi->s_journal)
sbi              5492 fs/ext4/super.c 			sbi->s_mount_state = le16_to_cpu(es->s_state);
sbi              5522 fs/ext4/super.c 	if (sbi->s_journal == NULL && !(old_sb_flags & SB_RDONLY)) {
sbi              5550 fs/ext4/super.c 	sbi->s_mount_opt = old_opts.s_mount_opt;
sbi              5551 fs/ext4/super.c 	sbi->s_mount_opt2 = old_opts.s_mount_opt2;
sbi              5552 fs/ext4/super.c 	sbi->s_resuid = old_opts.s_resuid;
sbi              5553 fs/ext4/super.c 	sbi->s_resgid = old_opts.s_resgid;
sbi              5554 fs/ext4/super.c 	sbi->s_commit_interval = old_opts.s_commit_interval;
sbi              5555 fs/ext4/super.c 	sbi->s_min_batch_time = old_opts.s_min_batch_time;
sbi              5556 fs/ext4/super.c 	sbi->s_max_batch_time = old_opts.s_max_batch_time;
sbi              5558 fs/ext4/super.c 	sbi->s_jquota_fmt = old_opts.s_jquota_fmt;
sbi              5560 fs/ext4/super.c 		to_free[i] = get_qf_name(sb, sbi, i);
sbi              5561 fs/ext4/super.c 		rcu_assign_pointer(sbi->s_qf_names[i], old_opts.s_qf_names[i]);
sbi              5628 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              5629 fs/ext4/super.c 	struct ext4_super_block *es = sbi->s_es;
sbi              5633 fs/ext4/super.c 	resv_blocks = EXT4_C2B(sbi, atomic64_read(&sbi->s_resv_clusters));
sbi              5636 fs/ext4/super.c 		overhead = sbi->s_overhead;
sbi              5640 fs/ext4/super.c 	buf->f_blocks = ext4_blocks_count(es) - EXT4_C2B(sbi, overhead);
sbi              5641 fs/ext4/super.c 	bfree = percpu_counter_sum_positive(&sbi->s_freeclusters_counter) -
sbi              5642 fs/ext4/super.c 		percpu_counter_sum_positive(&sbi->s_dirtyclusters_counter);
sbi              5644 fs/ext4/super.c 	buf->f_bfree = EXT4_C2B(sbi, max_t(s64, bfree, 0));
sbi              5650 fs/ext4/super.c 	buf->f_ffree = percpu_counter_sum_positive(&sbi->s_freeinodes_counter);
sbi              5733 fs/ext4/super.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi              5737 fs/ext4/super.c 	    sbi->s_qf_names[USRQUOTA] || sbi->s_qf_names[GRPQUOTA]) {
sbi                55 fs/ext4/sysfs.c static ssize_t session_write_kbytes_show(struct ext4_sb_info *sbi, char *buf)
sbi                57 fs/ext4/sysfs.c 	struct super_block *sb = sbi->s_buddy_cache->i_sb;
sbi                64 fs/ext4/sysfs.c 			 sbi->s_sectors_written_start) >> 1);
sbi                67 fs/ext4/sysfs.c static ssize_t lifetime_write_kbytes_show(struct ext4_sb_info *sbi, char *buf)
sbi                69 fs/ext4/sysfs.c 	struct super_block *sb = sbi->s_buddy_cache->i_sb;
sbi                74 fs/ext4/sysfs.c 			(unsigned long long)(sbi->s_kbytes_written +
sbi                80 fs/ext4/sysfs.c static ssize_t inode_readahead_blks_store(struct ext4_sb_info *sbi,
sbi                93 fs/ext4/sysfs.c 	sbi->s_inode_readahead_blks = t;
sbi                97 fs/ext4/sysfs.c static ssize_t reserved_clusters_store(struct ext4_sb_info *sbi,
sbi               101 fs/ext4/sysfs.c 	ext4_fsblk_t clusters = (ext4_blocks_count(sbi->s_es) >>
sbi               102 fs/ext4/sysfs.c 				 sbi->s_cluster_bits);
sbi               109 fs/ext4/sysfs.c 	atomic64_set(&sbi->s_resv_clusters, val);
sbi               113 fs/ext4/sysfs.c static ssize_t trigger_test_error(struct ext4_sb_info *sbi,
sbi               125 fs/ext4/sysfs.c 		ext4_error(sbi->s_sb, "%.*s", len, buf);
sbi               129 fs/ext4/sysfs.c static ssize_t journal_task_show(struct ext4_sb_info *sbi, char *buf)
sbi               131 fs/ext4/sysfs.c 	if (!sbi->s_journal)
sbi               134 fs/ext4/sysfs.c 			task_pid_vnr(sbi->s_journal->j_task));
sbi               268 fs/ext4/sysfs.c static void *calc_ptr(struct ext4_attr *a, struct ext4_sb_info *sbi)
sbi               274 fs/ext4/sysfs.c 		return (void *) (((char *) sbi) + a->u.offset);
sbi               276 fs/ext4/sysfs.c 		return (void *) (((char *) sbi->s_es) + a->u.offset);
sbi               293 fs/ext4/sysfs.c 	struct ext4_sb_info *sbi = container_of(kobj, struct ext4_sb_info,
sbi               296 fs/ext4/sysfs.c 	void *ptr = calc_ptr(a, sbi);
sbi               301 fs/ext4/sysfs.c 				(s64) EXT4_C2B(sbi,
sbi               302 fs/ext4/sysfs.c 		       percpu_counter_sum(&sbi->s_dirtyclusters_counter)));
sbi               304 fs/ext4/sysfs.c 		return session_write_kbytes_show(sbi, buf);
sbi               306 fs/ext4/sysfs.c 		return lifetime_write_kbytes_show(sbi, buf);
sbi               310 fs/ext4/sysfs.c 				atomic64_read(&sbi->s_resv_clusters));
sbi               329 fs/ext4/sysfs.c 		return print_tstamp(buf, sbi->s_es, s_first_error_time);
sbi               331 fs/ext4/sysfs.c 		return print_tstamp(buf, sbi->s_es, s_last_error_time);
sbi               333 fs/ext4/sysfs.c 		return journal_task_show(sbi, buf);
sbi               343 fs/ext4/sysfs.c 	struct ext4_sb_info *sbi = container_of(kobj, struct ext4_sb_info,
sbi               346 fs/ext4/sysfs.c 	void *ptr = calc_ptr(a, sbi);
sbi               352 fs/ext4/sysfs.c 		return reserved_clusters_store(sbi, buf, len);
sbi               365 fs/ext4/sysfs.c 		return inode_readahead_blks_store(sbi, buf, len);
sbi               367 fs/ext4/sysfs.c 		return trigger_test_error(sbi, buf, len);
sbi               374 fs/ext4/sysfs.c 	struct ext4_sb_info *sbi = container_of(kobj, struct ext4_sb_info,
sbi               376 fs/ext4/sysfs.c 	complete(&sbi->s_kobj_unregister);
sbi               402 fs/ext4/sysfs.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               405 fs/ext4/sysfs.c 	init_completion(&sbi->s_kobj_unregister);
sbi               406 fs/ext4/sysfs.c 	err = kobject_init_and_add(&sbi->s_kobj, &ext4_sb_ktype, ext4_root,
sbi               409 fs/ext4/sysfs.c 		kobject_put(&sbi->s_kobj);
sbi               410 fs/ext4/sysfs.c 		wait_for_completion(&sbi->s_kobj_unregister);
sbi               415 fs/ext4/sysfs.c 		sbi->s_proc = proc_mkdir(sb->s_id, ext4_proc_root);
sbi               416 fs/ext4/sysfs.c 	if (sbi->s_proc) {
sbi               417 fs/ext4/sysfs.c 		proc_create_single_data("options", S_IRUGO, sbi->s_proc,
sbi               420 fs/ext4/sysfs.c 				sbi->s_proc, ext4_seq_es_shrinker_info_show,
sbi               422 fs/ext4/sysfs.c 		proc_create_seq_data("mb_groups", S_IRUGO, sbi->s_proc,
sbi               430 fs/ext4/sysfs.c 	struct ext4_sb_info *sbi = EXT4_SB(sb);
sbi               432 fs/ext4/sysfs.c 	if (sbi->s_proc)
sbi               434 fs/ext4/sysfs.c 	kobject_del(&sbi->s_kobj);
sbi               132 fs/ext4/xattr.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi               138 fs/ext4/xattr.c 	csum = ext4_chksum(sbi, sbi->s_csum_seed, (__u8 *)&dsk_block_nr,
sbi               140 fs/ext4/xattr.c 	csum = ext4_chksum(sbi, csum, (__u8 *)hdr, offset);
sbi               141 fs/ext4/xattr.c 	csum = ext4_chksum(sbi, csum, (__u8 *)&dummy_csum, sizeof(dummy_csum));
sbi               143 fs/ext4/xattr.c 	csum = ext4_chksum(sbi, csum, (__u8 *)hdr + offset,
sbi               310 fs/ext4/xattr.c ext4_xattr_inode_hash(struct ext4_sb_info *sbi, const void *buffer, size_t size)
sbi               312 fs/ext4/xattr.c 	return ext4_chksum(sbi, sbi->s_csum_seed, buffer, size);
sbi              2701 fs/ext4/xattr.c 	struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
sbi              2708 fs/ext4/xattr.c 	int s_min_extra_isize = le16_to_cpu(sbi->s_es->s_min_extra_isize);
sbi              2793 fs/ext4/xattr.c 	if (error && (mnt_count != le16_to_cpu(sbi->s_es->s_mnt_count))) {
sbi              2796 fs/ext4/xattr.c 		mnt_count = le16_to_cpu(sbi->s_es->s_mnt_count);
sbi               112 fs/f2fs/acl.c  static void *f2fs_acl_to_disk(struct f2fs_sb_info *sbi,
sbi               119 fs/f2fs/acl.c  	f2fs_acl = f2fs_kmalloc(sbi, sizeof(struct f2fs_acl_header) +
sbi                26 fs/f2fs/checkpoint.c void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io)
sbi                28 fs/f2fs/checkpoint.c 	f2fs_build_fault_attr(sbi, 0, 0);
sbi                29 fs/f2fs/checkpoint.c 	set_ckpt_flags(sbi, CP_ERROR_FLAG);
sbi                31 fs/f2fs/checkpoint.c 		f2fs_flush_merged_writes(sbi);
sbi                37 fs/f2fs/checkpoint.c struct page *f2fs_grab_meta_page(struct f2fs_sb_info *sbi, pgoff_t index)
sbi                39 fs/f2fs/checkpoint.c 	struct address_space *mapping = META_MAPPING(sbi);
sbi                56 fs/f2fs/checkpoint.c static struct page *__get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index,
sbi                59 fs/f2fs/checkpoint.c 	struct address_space *mapping = META_MAPPING(sbi);
sbi                62 fs/f2fs/checkpoint.c 		.sbi = sbi,
sbi               106 fs/f2fs/checkpoint.c struct page *f2fs_get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index)
sbi               108 fs/f2fs/checkpoint.c 	return __get_meta_page(sbi, index, true);
sbi               111 fs/f2fs/checkpoint.c struct page *f2fs_get_meta_page_nofail(struct f2fs_sb_info *sbi, pgoff_t index)
sbi               117 fs/f2fs/checkpoint.c 	page = __get_meta_page(sbi, index, true);
sbi               122 fs/f2fs/checkpoint.c 		f2fs_stop_checkpoint(sbi, false);
sbi               128 fs/f2fs/checkpoint.c struct page *f2fs_get_tmp_page(struct f2fs_sb_info *sbi, pgoff_t index)
sbi               130 fs/f2fs/checkpoint.c 	return __get_meta_page(sbi, index, false);
sbi               133 fs/f2fs/checkpoint.c static bool __is_bitmap_valid(struct f2fs_sb_info *sbi, block_t blkaddr,
sbi               143 fs/f2fs/checkpoint.c 	segno = GET_SEGNO(sbi, blkaddr);
sbi               144 fs/f2fs/checkpoint.c 	offset = GET_BLKOFF_FROM_SEG0(sbi, blkaddr);
sbi               145 fs/f2fs/checkpoint.c 	se = get_seg_entry(sbi, segno);
sbi               149 fs/f2fs/checkpoint.c 		f2fs_err(sbi, "Inconsistent error blkaddr:%u, sit bitmap:%d",
sbi               151 fs/f2fs/checkpoint.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               157 fs/f2fs/checkpoint.c bool f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi,
sbi               164 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr >= SIT_BLK_CNT(sbi)))
sbi               168 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr >= MAIN_BLKADDR(sbi) ||
sbi               169 fs/f2fs/checkpoint.c 			blkaddr < SM_I(sbi)->ssa_blkaddr))
sbi               173 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr >= SIT_I(sbi)->sit_base_addr ||
sbi               174 fs/f2fs/checkpoint.c 			blkaddr < __start_cp_addr(sbi)))
sbi               178 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr >= MAX_BLKADDR(sbi) ||
sbi               179 fs/f2fs/checkpoint.c 			blkaddr < MAIN_BLKADDR(sbi)))
sbi               185 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr >= MAX_BLKADDR(sbi) ||
sbi               186 fs/f2fs/checkpoint.c 				blkaddr < MAIN_BLKADDR(sbi))) {
sbi               187 fs/f2fs/checkpoint.c 			f2fs_warn(sbi, "access invalid blkaddr:%u",
sbi               189 fs/f2fs/checkpoint.c 			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               193 fs/f2fs/checkpoint.c 			return __is_bitmap_valid(sbi, blkaddr, type);
sbi               197 fs/f2fs/checkpoint.c 		if (unlikely(blkaddr < SEG0_BLKADDR(sbi) ||
sbi               198 fs/f2fs/checkpoint.c 			blkaddr >= MAIN_BLKADDR(sbi)))
sbi               211 fs/f2fs/checkpoint.c int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages,
sbi               217 fs/f2fs/checkpoint.c 		.sbi = sbi,
sbi               233 fs/f2fs/checkpoint.c 		if (!f2fs_is_valid_blkaddr(sbi, blkno, type))
sbi               239 fs/f2fs/checkpoint.c 					NAT_BLOCK_OFFSET(NM_I(sbi)->max_nid)))
sbi               242 fs/f2fs/checkpoint.c 			fio.new_blkaddr = current_nat_addr(sbi,
sbi               247 fs/f2fs/checkpoint.c 			fio.new_blkaddr = current_sit_addr(sbi,
sbi               259 fs/f2fs/checkpoint.c 		page = f2fs_grab_cache_page(META_MAPPING(sbi),
sbi               277 fs/f2fs/checkpoint.c void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index)
sbi               282 fs/f2fs/checkpoint.c 	page = find_get_page(META_MAPPING(sbi), index);
sbi               288 fs/f2fs/checkpoint.c 		f2fs_ra_meta_pages(sbi, index, BIO_MAX_PAGES, META_POR, true);
sbi               295 fs/f2fs/checkpoint.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(page);
sbi               299 fs/f2fs/checkpoint.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               301 fs/f2fs/checkpoint.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi               303 fs/f2fs/checkpoint.c 	if (wbc->for_reclaim && page->index < GET_SUM_BLOCK(sbi, 0))
sbi               306 fs/f2fs/checkpoint.c 	f2fs_do_write_meta_page(sbi, page, io_type);
sbi               307 fs/f2fs/checkpoint.c 	dec_page_count(sbi, F2FS_DIRTY_META);
sbi               310 fs/f2fs/checkpoint.c 		f2fs_submit_merged_write_cond(sbi, NULL, page, 0, META);
sbi               314 fs/f2fs/checkpoint.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               315 fs/f2fs/checkpoint.c 		f2fs_submit_merged_write(sbi, META);
sbi               333 fs/f2fs/checkpoint.c 	struct f2fs_sb_info *sbi = F2FS_M_SB(mapping);
sbi               336 fs/f2fs/checkpoint.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi               341 fs/f2fs/checkpoint.c 			get_pages(sbi, F2FS_DIRTY_META) <
sbi               342 fs/f2fs/checkpoint.c 					nr_pages_to_skip(sbi, META))
sbi               346 fs/f2fs/checkpoint.c 	if (!mutex_trylock(&sbi->cp_mutex))
sbi               350 fs/f2fs/checkpoint.c 	diff = nr_pages_to_write(sbi, META, wbc);
sbi               351 fs/f2fs/checkpoint.c 	written = f2fs_sync_meta_pages(sbi, META, wbc->nr_to_write, FS_META_IO);
sbi               352 fs/f2fs/checkpoint.c 	mutex_unlock(&sbi->cp_mutex);
sbi               357 fs/f2fs/checkpoint.c 	wbc->pages_skipped += get_pages(sbi, F2FS_DIRTY_META);
sbi               362 fs/f2fs/checkpoint.c long f2fs_sync_meta_pages(struct f2fs_sb_info *sbi, enum page_type type,
sbi               365 fs/f2fs/checkpoint.c 	struct address_space *mapping = META_MAPPING(sbi);
sbi               424 fs/f2fs/checkpoint.c 		f2fs_submit_merged_write(sbi, type);
sbi               458 fs/f2fs/checkpoint.c static void __add_ino_entry(struct f2fs_sb_info *sbi, nid_t ino,
sbi               461 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[type];
sbi               473 fs/f2fs/checkpoint.c 			f2fs_bug_on(sbi, 1);
sbi               493 fs/f2fs/checkpoint.c static void __remove_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type)
sbi               495 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[type];
sbi               511 fs/f2fs/checkpoint.c void f2fs_add_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type)
sbi               514 fs/f2fs/checkpoint.c 	__add_ino_entry(sbi, ino, 0, type);
sbi               517 fs/f2fs/checkpoint.c void f2fs_remove_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type)
sbi               520 fs/f2fs/checkpoint.c 	__remove_ino_entry(sbi, ino, type);
sbi               524 fs/f2fs/checkpoint.c bool f2fs_exist_written_data(struct f2fs_sb_info *sbi, nid_t ino, int mode)
sbi               526 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[mode];
sbi               535 fs/f2fs/checkpoint.c void f2fs_release_ino_entry(struct f2fs_sb_info *sbi, bool all)
sbi               541 fs/f2fs/checkpoint.c 		struct inode_management *im = &sbi->im[i];
sbi               554 fs/f2fs/checkpoint.c void f2fs_set_dirty_device(struct f2fs_sb_info *sbi, nid_t ino,
sbi               557 fs/f2fs/checkpoint.c 	__add_ino_entry(sbi, ino, devidx, type);
sbi               560 fs/f2fs/checkpoint.c bool f2fs_is_dirty_device(struct f2fs_sb_info *sbi, nid_t ino,
sbi               563 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[type];
sbi               575 fs/f2fs/checkpoint.c int f2fs_acquire_orphan_inode(struct f2fs_sb_info *sbi)
sbi               577 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[ORPHAN_INO];
sbi               582 fs/f2fs/checkpoint.c 	if (time_to_inject(sbi, FAULT_ORPHAN)) {
sbi               588 fs/f2fs/checkpoint.c 	if (unlikely(im->ino_num >= sbi->max_orphans))
sbi               597 fs/f2fs/checkpoint.c void f2fs_release_orphan_inode(struct f2fs_sb_info *sbi)
sbi               599 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[ORPHAN_INO];
sbi               602 fs/f2fs/checkpoint.c 	f2fs_bug_on(sbi, im->ino_num == 0);
sbi               614 fs/f2fs/checkpoint.c void f2fs_remove_orphan_inode(struct f2fs_sb_info *sbi, nid_t ino)
sbi               617 fs/f2fs/checkpoint.c 	__remove_ino_entry(sbi, ino, ORPHAN_INO);
sbi               620 fs/f2fs/checkpoint.c static int recover_orphan_inode(struct f2fs_sb_info *sbi, nid_t ino)
sbi               626 fs/f2fs/checkpoint.c 	inode = f2fs_iget_retry(sbi->sb, ino);
sbi               632 fs/f2fs/checkpoint.c 		f2fs_bug_on(sbi, PTR_ERR(inode) == -ENOENT);
sbi               647 fs/f2fs/checkpoint.c 	err = f2fs_get_node_info(sbi, ino, &ni);
sbi               659 fs/f2fs/checkpoint.c 	set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               660 fs/f2fs/checkpoint.c 	f2fs_warn(sbi, "%s: orphan failed (ino=%x), run fsck to fix.",
sbi               665 fs/f2fs/checkpoint.c int f2fs_recover_orphan_inodes(struct f2fs_sb_info *sbi)
sbi               668 fs/f2fs/checkpoint.c 	unsigned int s_flags = sbi->sb->s_flags;
sbi               674 fs/f2fs/checkpoint.c 	if (!is_set_ckpt_flags(sbi, CP_ORPHAN_PRESENT_FLAG))
sbi               677 fs/f2fs/checkpoint.c 	if (bdev_read_only(sbi->sb->s_bdev)) {
sbi               678 fs/f2fs/checkpoint.c 		f2fs_info(sbi, "write access unavailable, skipping orphan cleanup");
sbi               683 fs/f2fs/checkpoint.c 		f2fs_info(sbi, "orphan cleanup on readonly fs");
sbi               684 fs/f2fs/checkpoint.c 		sbi->sb->s_flags &= ~SB_RDONLY;
sbi               689 fs/f2fs/checkpoint.c 	sbi->sb->s_flags |= SB_ACTIVE;
sbi               695 fs/f2fs/checkpoint.c 	quota_enabled = f2fs_enable_quota_files(sbi, s_flags & SB_RDONLY);
sbi               698 fs/f2fs/checkpoint.c 	start_blk = __start_cp_addr(sbi) + 1 + __cp_payload(sbi);
sbi               699 fs/f2fs/checkpoint.c 	orphan_blocks = __start_sum_addr(sbi) - 1 - __cp_payload(sbi);
sbi               701 fs/f2fs/checkpoint.c 	f2fs_ra_meta_pages(sbi, start_blk, orphan_blocks, META_CP, true);
sbi               707 fs/f2fs/checkpoint.c 		page = f2fs_get_meta_page(sbi, start_blk + i);
sbi               716 fs/f2fs/checkpoint.c 			err = recover_orphan_inode(sbi, ino);
sbi               725 fs/f2fs/checkpoint.c 	clear_ckpt_flags(sbi, CP_ORPHAN_PRESENT_FLAG);
sbi               727 fs/f2fs/checkpoint.c 	set_sbi_flag(sbi, SBI_IS_RECOVERED);
sbi               732 fs/f2fs/checkpoint.c 		f2fs_quota_off_umount(sbi->sb);
sbi               734 fs/f2fs/checkpoint.c 	sbi->sb->s_flags = s_flags; /* Restore SB_RDONLY status */
sbi               739 fs/f2fs/checkpoint.c static void write_orphan_inodes(struct f2fs_sb_info *sbi, block_t start_blk)
sbi               748 fs/f2fs/checkpoint.c 	struct inode_management *im = &sbi->im[ORPHAN_INO];
sbi               762 fs/f2fs/checkpoint.c 			page = f2fs_grab_meta_page(sbi, start_blk++);
sbi               796 fs/f2fs/checkpoint.c static __u32 f2fs_checkpoint_chksum(struct f2fs_sb_info *sbi,
sbi               802 fs/f2fs/checkpoint.c 	chksum = f2fs_crc32(sbi, ckpt, chksum_ofs);
sbi               805 fs/f2fs/checkpoint.c 		chksum = f2fs_chksum(sbi, chksum, (__u8 *)ckpt + chksum_ofs,
sbi               811 fs/f2fs/checkpoint.c static int get_checkpoint_version(struct f2fs_sb_info *sbi, block_t cp_addr,
sbi               818 fs/f2fs/checkpoint.c 	*cp_page = f2fs_get_meta_page(sbi, cp_addr);
sbi               828 fs/f2fs/checkpoint.c 		f2fs_warn(sbi, "invalid crc_offset: %zu", crc_offset);
sbi               832 fs/f2fs/checkpoint.c 	crc = f2fs_checkpoint_chksum(sbi, *cp_block);
sbi               835 fs/f2fs/checkpoint.c 		f2fs_warn(sbi, "invalid crc value");
sbi               843 fs/f2fs/checkpoint.c static struct page *validate_checkpoint(struct f2fs_sb_info *sbi,
sbi               851 fs/f2fs/checkpoint.c 	err = get_checkpoint_version(sbi, cp_addr, &cp_block,
sbi               857 fs/f2fs/checkpoint.c 					sbi->blocks_per_seg) {
sbi               858 fs/f2fs/checkpoint.c 		f2fs_warn(sbi, "invalid cp_pack_total_block_count:%u",
sbi               865 fs/f2fs/checkpoint.c 	err = get_checkpoint_version(sbi, cp_addr, &cp_block,
sbi               882 fs/f2fs/checkpoint.c int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi)
sbi               885 fs/f2fs/checkpoint.c 	struct f2fs_super_block *fsb = sbi->raw_super;
sbi               887 fs/f2fs/checkpoint.c 	unsigned long blk_size = sbi->blocksize;
sbi               890 fs/f2fs/checkpoint.c 	unsigned int cp_blks = 1 + __cp_payload(sbi);
sbi               895 fs/f2fs/checkpoint.c 	sbi->ckpt = f2fs_kzalloc(sbi, array_size(blk_size, cp_blks),
sbi               897 fs/f2fs/checkpoint.c 	if (!sbi->ckpt)
sbi               904 fs/f2fs/checkpoint.c 	cp1 = validate_checkpoint(sbi, cp_start_blk_no, &cp1_version);
sbi               909 fs/f2fs/checkpoint.c 	cp2 = validate_checkpoint(sbi, cp_start_blk_no, &cp2_version);
sbi               926 fs/f2fs/checkpoint.c 	memcpy(sbi->ckpt, cp_block, blk_size);
sbi               929 fs/f2fs/checkpoint.c 		sbi->cur_cp_pack = 1;
sbi               931 fs/f2fs/checkpoint.c 		sbi->cur_cp_pack = 2;
sbi               934 fs/f2fs/checkpoint.c 	if (f2fs_sanity_check_ckpt(sbi)) {
sbi               948 fs/f2fs/checkpoint.c 		unsigned char *ckpt = (unsigned char *)sbi->ckpt;
sbi               950 fs/f2fs/checkpoint.c 		cur_page = f2fs_get_meta_page(sbi, cp_blk_no + i);
sbi               968 fs/f2fs/checkpoint.c 	kvfree(sbi->ckpt);
sbi               974 fs/f2fs/checkpoint.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               983 fs/f2fs/checkpoint.c 						&sbi->inode_list[type]);
sbi               984 fs/f2fs/checkpoint.c 	stat_inc_dirty_inode(sbi, type);
sbi              1001 fs/f2fs/checkpoint.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1008 fs/f2fs/checkpoint.c 	spin_lock(&sbi->inode_lock[type]);
sbi              1009 fs/f2fs/checkpoint.c 	if (type != FILE_INODE || test_opt(sbi, DATA_FLUSH))
sbi              1012 fs/f2fs/checkpoint.c 	spin_unlock(&sbi->inode_lock[type]);
sbi              1020 fs/f2fs/checkpoint.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1027 fs/f2fs/checkpoint.c 	if (type == FILE_INODE && !test_opt(sbi, DATA_FLUSH))
sbi              1030 fs/f2fs/checkpoint.c 	spin_lock(&sbi->inode_lock[type]);
sbi              1032 fs/f2fs/checkpoint.c 	spin_unlock(&sbi->inode_lock[type]);
sbi              1035 fs/f2fs/checkpoint.c int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type)
sbi              1043 fs/f2fs/checkpoint.c 	trace_f2fs_sync_dirty_inodes_enter(sbi->sb, is_dir,
sbi              1044 fs/f2fs/checkpoint.c 				get_pages(sbi, is_dir ?
sbi              1047 fs/f2fs/checkpoint.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi              1050 fs/f2fs/checkpoint.c 	spin_lock(&sbi->inode_lock[type]);
sbi              1052 fs/f2fs/checkpoint.c 	head = &sbi->inode_list[type];
sbi              1054 fs/f2fs/checkpoint.c 		spin_unlock(&sbi->inode_lock[type]);
sbi              1055 fs/f2fs/checkpoint.c 		trace_f2fs_sync_dirty_inodes_exit(sbi->sb, is_dir,
sbi              1056 fs/f2fs/checkpoint.c 				get_pages(sbi, is_dir ?
sbi              1062 fs/f2fs/checkpoint.c 	spin_unlock(&sbi->inode_lock[type]);
sbi              1083 fs/f2fs/checkpoint.c 		f2fs_submit_merged_write(sbi, DATA);
sbi              1089 fs/f2fs/checkpoint.c int f2fs_sync_inode_meta(struct f2fs_sb_info *sbi)
sbi              1091 fs/f2fs/checkpoint.c 	struct list_head *head = &sbi->inode_list[DIRTY_META];
sbi              1094 fs/f2fs/checkpoint.c 	s64 total = get_pages(sbi, F2FS_DIRTY_IMETA);
sbi              1097 fs/f2fs/checkpoint.c 		if (unlikely(f2fs_cp_error(sbi)))
sbi              1100 fs/f2fs/checkpoint.c 		spin_lock(&sbi->inode_lock[DIRTY_META]);
sbi              1102 fs/f2fs/checkpoint.c 			spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              1108 fs/f2fs/checkpoint.c 		spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              1121 fs/f2fs/checkpoint.c static void __prepare_cp_block(struct f2fs_sb_info *sbi)
sbi              1123 fs/f2fs/checkpoint.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1124 fs/f2fs/checkpoint.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              1127 fs/f2fs/checkpoint.c 	next_free_nid(sbi, &last_nid);
sbi              1128 fs/f2fs/checkpoint.c 	ckpt->valid_block_count = cpu_to_le64(valid_user_blocks(sbi));
sbi              1129 fs/f2fs/checkpoint.c 	ckpt->valid_node_count = cpu_to_le32(valid_node_count(sbi));
sbi              1130 fs/f2fs/checkpoint.c 	ckpt->valid_inode_count = cpu_to_le32(valid_inode_count(sbi));
sbi              1134 fs/f2fs/checkpoint.c static bool __need_flush_quota(struct f2fs_sb_info *sbi)
sbi              1138 fs/f2fs/checkpoint.c 	if (!is_journalled_quota(sbi))
sbi              1141 fs/f2fs/checkpoint.c 	down_write(&sbi->quota_sem);
sbi              1142 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH)) {
sbi              1144 fs/f2fs/checkpoint.c 	} else if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR)) {
sbi              1146 fs/f2fs/checkpoint.c 	} else if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_FLUSH)) {
sbi              1147 fs/f2fs/checkpoint.c 		clear_sbi_flag(sbi, SBI_QUOTA_NEED_FLUSH);
sbi              1149 fs/f2fs/checkpoint.c 	} else if (get_pages(sbi, F2FS_DIRTY_QDATA)) {
sbi              1152 fs/f2fs/checkpoint.c 	up_write(&sbi->quota_sem);
sbi              1159 fs/f2fs/checkpoint.c static int block_operations(struct f2fs_sb_info *sbi)
sbi              1172 fs/f2fs/checkpoint.c 	f2fs_lock_all(sbi);
sbi              1173 fs/f2fs/checkpoint.c 	if (__need_flush_quota(sbi)) {
sbi              1177 fs/f2fs/checkpoint.c 			set_sbi_flag(sbi, SBI_QUOTA_SKIP_FLUSH);
sbi              1178 fs/f2fs/checkpoint.c 			set_sbi_flag(sbi, SBI_QUOTA_NEED_FLUSH);
sbi              1181 fs/f2fs/checkpoint.c 		f2fs_unlock_all(sbi);
sbi              1184 fs/f2fs/checkpoint.c 		locked = down_read_trylock(&sbi->sb->s_umount);
sbi              1185 fs/f2fs/checkpoint.c 		f2fs_quota_sync(sbi->sb, -1);
sbi              1187 fs/f2fs/checkpoint.c 			up_read(&sbi->sb->s_umount);
sbi              1194 fs/f2fs/checkpoint.c 	if (get_pages(sbi, F2FS_DIRTY_DENTS)) {
sbi              1195 fs/f2fs/checkpoint.c 		f2fs_unlock_all(sbi);
sbi              1196 fs/f2fs/checkpoint.c 		err = f2fs_sync_dirty_inodes(sbi, DIR_INODE);
sbi              1207 fs/f2fs/checkpoint.c 	down_write(&sbi->node_change);
sbi              1209 fs/f2fs/checkpoint.c 	if (get_pages(sbi, F2FS_DIRTY_IMETA)) {
sbi              1210 fs/f2fs/checkpoint.c 		up_write(&sbi->node_change);
sbi              1211 fs/f2fs/checkpoint.c 		f2fs_unlock_all(sbi);
sbi              1212 fs/f2fs/checkpoint.c 		err = f2fs_sync_inode_meta(sbi);
sbi              1220 fs/f2fs/checkpoint.c 	down_write(&sbi->node_write);
sbi              1222 fs/f2fs/checkpoint.c 	if (get_pages(sbi, F2FS_DIRTY_NODES)) {
sbi              1223 fs/f2fs/checkpoint.c 		up_write(&sbi->node_write);
sbi              1224 fs/f2fs/checkpoint.c 		atomic_inc(&sbi->wb_sync_req[NODE]);
sbi              1225 fs/f2fs/checkpoint.c 		err = f2fs_sync_node_pages(sbi, &wbc, false, FS_CP_NODE_IO);
sbi              1226 fs/f2fs/checkpoint.c 		atomic_dec(&sbi->wb_sync_req[NODE]);
sbi              1228 fs/f2fs/checkpoint.c 			up_write(&sbi->node_change);
sbi              1229 fs/f2fs/checkpoint.c 			f2fs_unlock_all(sbi);
sbi              1240 fs/f2fs/checkpoint.c 	__prepare_cp_block(sbi);
sbi              1241 fs/f2fs/checkpoint.c 	up_write(&sbi->node_change);
sbi              1247 fs/f2fs/checkpoint.c static void unblock_operations(struct f2fs_sb_info *sbi)
sbi              1249 fs/f2fs/checkpoint.c 	up_write(&sbi->node_write);
sbi              1250 fs/f2fs/checkpoint.c 	f2fs_unlock_all(sbi);
sbi              1253 fs/f2fs/checkpoint.c void f2fs_wait_on_all_pages(struct f2fs_sb_info *sbi, int type)
sbi              1258 fs/f2fs/checkpoint.c 		prepare_to_wait(&sbi->cp_wait, &wait, TASK_UNINTERRUPTIBLE);
sbi              1260 fs/f2fs/checkpoint.c 		if (!get_pages(sbi, type))
sbi              1263 fs/f2fs/checkpoint.c 		if (unlikely(f2fs_cp_error(sbi)))
sbi              1268 fs/f2fs/checkpoint.c 	finish_wait(&sbi->cp_wait, &wait);
sbi              1271 fs/f2fs/checkpoint.c static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi              1273 fs/f2fs/checkpoint.c 	unsigned long orphan_num = sbi->im[ORPHAN_INO].ino_num;
sbi              1274 fs/f2fs/checkpoint.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1277 fs/f2fs/checkpoint.c 	spin_lock_irqsave(&sbi->cp_lock, flags);
sbi              1281 fs/f2fs/checkpoint.c 			sbi->blocks_per_seg - NM_I(sbi)->nat_bits_blocks)
sbi              1282 fs/f2fs/checkpoint.c 		disable_nat_bits(sbi, false);
sbi              1304 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_NEED_FSCK))
sbi              1307 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_IS_RESIZEFS))
sbi              1312 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_CP_DISABLED))
sbi              1317 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK))
sbi              1322 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_QUOTA_SKIP_FLUSH))
sbi              1327 fs/f2fs/checkpoint.c 	if (is_sbi_flag_set(sbi, SBI_QUOTA_NEED_REPAIR))
sbi              1334 fs/f2fs/checkpoint.c 	spin_unlock_irqrestore(&sbi->cp_lock, flags);
sbi              1337 fs/f2fs/checkpoint.c static void commit_checkpoint(struct f2fs_sb_info *sbi,
sbi              1349 fs/f2fs/checkpoint.c 	struct page *page = f2fs_grab_meta_page(sbi, blk_addr);
sbi              1358 fs/f2fs/checkpoint.c 		f2fs_bug_on(sbi, 1);
sbi              1362 fs/f2fs/checkpoint.c 	if (unlikely(err && f2fs_cp_error(sbi))) {
sbi              1367 fs/f2fs/checkpoint.c 	f2fs_bug_on(sbi, err);
sbi              1371 fs/f2fs/checkpoint.c 	f2fs_submit_merged_write(sbi, META_FLUSH);
sbi              1374 fs/f2fs/checkpoint.c static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi              1376 fs/f2fs/checkpoint.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1377 fs/f2fs/checkpoint.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              1378 fs/f2fs/checkpoint.c 	unsigned long orphan_num = sbi->im[ORPHAN_INO].ino_num, flags;
sbi              1383 fs/f2fs/checkpoint.c 	int cp_payload_blks = __cp_payload(sbi);
sbi              1384 fs/f2fs/checkpoint.c 	struct super_block *sb = sbi->sb;
sbi              1385 fs/f2fs/checkpoint.c 	struct curseg_info *seg_i = CURSEG_I(sbi, CURSEG_HOT_NODE);
sbi              1390 fs/f2fs/checkpoint.c 	f2fs_sync_meta_pages(sbi, META, LONG_MAX, FS_CP_META_IO);
sbi              1396 fs/f2fs/checkpoint.c 	ckpt->elapsed_time = cpu_to_le64(get_mtime(sbi, true));
sbi              1397 fs/f2fs/checkpoint.c 	ckpt->free_segment_count = cpu_to_le32(free_segments(sbi));
sbi              1400 fs/f2fs/checkpoint.c 			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_NODE));
sbi              1402 fs/f2fs/checkpoint.c 			cpu_to_le16(curseg_blkoff(sbi, i + CURSEG_HOT_NODE));
sbi              1404 fs/f2fs/checkpoint.c 				curseg_alloc_type(sbi, i + CURSEG_HOT_NODE);
sbi              1408 fs/f2fs/checkpoint.c 			cpu_to_le32(curseg_segno(sbi, i + CURSEG_HOT_DATA));
sbi              1410 fs/f2fs/checkpoint.c 			cpu_to_le16(curseg_blkoff(sbi, i + CURSEG_HOT_DATA));
sbi              1412 fs/f2fs/checkpoint.c 				curseg_alloc_type(sbi, i + CURSEG_HOT_DATA);
sbi              1416 fs/f2fs/checkpoint.c 	data_sum_blocks = f2fs_npages_for_summary_flush(sbi, false);
sbi              1417 fs/f2fs/checkpoint.c 	spin_lock_irqsave(&sbi->cp_lock, flags);
sbi              1422 fs/f2fs/checkpoint.c 	spin_unlock_irqrestore(&sbi->cp_lock, flags);
sbi              1438 fs/f2fs/checkpoint.c 	update_ckpt_flags(sbi, cpc);
sbi              1441 fs/f2fs/checkpoint.c 	get_sit_bitmap(sbi, __bitmap_ptr(sbi, SIT_BITMAP));
sbi              1442 fs/f2fs/checkpoint.c 	get_nat_bitmap(sbi, __bitmap_ptr(sbi, NAT_BITMAP));
sbi              1444 fs/f2fs/checkpoint.c 	crc32 = f2fs_checkpoint_chksum(sbi, ckpt);
sbi              1449 fs/f2fs/checkpoint.c 	start_blk = __start_cp_next_addr(sbi);
sbi              1452 fs/f2fs/checkpoint.c 	if (enabled_nat_bits(sbi, cpc)) {
sbi              1459 fs/f2fs/checkpoint.c 		blk = start_blk + sbi->blocks_per_seg - nm_i->nat_bits_blocks;
sbi              1461 fs/f2fs/checkpoint.c 			f2fs_update_meta_page(sbi, nm_i->nat_bits +
sbi              1466 fs/f2fs/checkpoint.c 	f2fs_update_meta_page(sbi, ckpt, start_blk++);
sbi              1469 fs/f2fs/checkpoint.c 		f2fs_update_meta_page(sbi, (char *)ckpt + i * F2FS_BLKSIZE,
sbi              1473 fs/f2fs/checkpoint.c 		write_orphan_inodes(sbi, start_blk);
sbi              1477 fs/f2fs/checkpoint.c 	f2fs_write_data_summaries(sbi, start_blk);
sbi              1481 fs/f2fs/checkpoint.c 	kbytes_written = sbi->kbytes_written;
sbi              1483 fs/f2fs/checkpoint.c 		kbytes_written += BD_PART_WRITTEN(sbi);
sbi              1488 fs/f2fs/checkpoint.c 		f2fs_write_node_summaries(sbi, start_blk);
sbi              1493 fs/f2fs/checkpoint.c 	sbi->last_valid_block_count = sbi->total_valid_block_count;
sbi              1494 fs/f2fs/checkpoint.c 	percpu_counter_set(&sbi->alloc_valid_block_count, 0);
sbi              1497 fs/f2fs/checkpoint.c 	f2fs_sync_meta_pages(sbi, META, LONG_MAX, FS_CP_META_IO);
sbi              1499 fs/f2fs/checkpoint.c 	f2fs_wait_on_all_pages(sbi, F2FS_DIRTY_META);
sbi              1502 fs/f2fs/checkpoint.c 	f2fs_wait_on_all_pages(sbi, F2FS_WB_CP_DATA);
sbi              1505 fs/f2fs/checkpoint.c 	err = f2fs_flush_device_cache(sbi);
sbi              1510 fs/f2fs/checkpoint.c 	commit_checkpoint(sbi, ckpt, start_blk);
sbi              1511 fs/f2fs/checkpoint.c 	f2fs_wait_on_all_pages(sbi, F2FS_WB_CP_DATA);
sbi              1517 fs/f2fs/checkpoint.c 	if (f2fs_sb_has_encrypt(sbi))
sbi              1518 fs/f2fs/checkpoint.c 		invalidate_mapping_pages(META_MAPPING(sbi),
sbi              1519 fs/f2fs/checkpoint.c 				MAIN_BLKADDR(sbi), MAX_BLKADDR(sbi) - 1);
sbi              1521 fs/f2fs/checkpoint.c 	f2fs_release_ino_entry(sbi, false);
sbi              1523 fs/f2fs/checkpoint.c 	f2fs_reset_fsync_node_info(sbi);
sbi              1525 fs/f2fs/checkpoint.c 	clear_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1526 fs/f2fs/checkpoint.c 	clear_sbi_flag(sbi, SBI_NEED_CP);
sbi              1527 fs/f2fs/checkpoint.c 	clear_sbi_flag(sbi, SBI_QUOTA_SKIP_FLUSH);
sbi              1529 fs/f2fs/checkpoint.c 	spin_lock(&sbi->stat_lock);
sbi              1530 fs/f2fs/checkpoint.c 	sbi->unusable_block_count = 0;
sbi              1531 fs/f2fs/checkpoint.c 	spin_unlock(&sbi->stat_lock);
sbi              1533 fs/f2fs/checkpoint.c 	__set_cp_next_pack(sbi);
sbi              1539 fs/f2fs/checkpoint.c 	if (get_pages(sbi, F2FS_DIRTY_NODES) ||
sbi              1540 fs/f2fs/checkpoint.c 			get_pages(sbi, F2FS_DIRTY_IMETA))
sbi              1541 fs/f2fs/checkpoint.c 		set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1543 fs/f2fs/checkpoint.c 	f2fs_bug_on(sbi, get_pages(sbi, F2FS_DIRTY_DENTS));
sbi              1545 fs/f2fs/checkpoint.c 	return unlikely(f2fs_cp_error(sbi)) ? -EIO : 0;
sbi              1551 fs/f2fs/checkpoint.c int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi              1553 fs/f2fs/checkpoint.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1557 fs/f2fs/checkpoint.c 	if (f2fs_readonly(sbi->sb) || f2fs_hw_is_readonly(sbi))
sbi              1560 fs/f2fs/checkpoint.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi              1563 fs/f2fs/checkpoint.c 		f2fs_warn(sbi, "Start checkpoint disabled!");
sbi              1565 fs/f2fs/checkpoint.c 	mutex_lock(&sbi->cp_mutex);
sbi              1567 fs/f2fs/checkpoint.c 	if (!is_sbi_flag_set(sbi, SBI_IS_DIRTY) &&
sbi              1569 fs/f2fs/checkpoint.c 		((cpc->reason & CP_DISCARD) && !sbi->discard_blks)))
sbi              1571 fs/f2fs/checkpoint.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi              1576 fs/f2fs/checkpoint.c 	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "start block_ops");
sbi              1578 fs/f2fs/checkpoint.c 	err = block_operations(sbi);
sbi              1582 fs/f2fs/checkpoint.c 	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "finish block_ops");
sbi              1584 fs/f2fs/checkpoint.c 	f2fs_flush_merged_writes(sbi);
sbi              1588 fs/f2fs/checkpoint.c 		if (!f2fs_exist_trim_candidates(sbi, cpc)) {
sbi              1589 fs/f2fs/checkpoint.c 			unblock_operations(sbi);
sbi              1593 fs/f2fs/checkpoint.c 		if (NM_I(sbi)->dirty_nat_cnt == 0 &&
sbi              1594 fs/f2fs/checkpoint.c 				SIT_I(sbi)->dirty_sentries == 0 &&
sbi              1595 fs/f2fs/checkpoint.c 				prefree_segments(sbi) == 0) {
sbi              1596 fs/f2fs/checkpoint.c 			f2fs_flush_sit_entries(sbi, cpc);
sbi              1597 fs/f2fs/checkpoint.c 			f2fs_clear_prefree_segments(sbi, cpc);
sbi              1598 fs/f2fs/checkpoint.c 			unblock_operations(sbi);
sbi              1612 fs/f2fs/checkpoint.c 	err = f2fs_flush_nat_entries(sbi, cpc);
sbi              1616 fs/f2fs/checkpoint.c 	f2fs_flush_sit_entries(sbi, cpc);
sbi              1619 fs/f2fs/checkpoint.c 	err = do_checkpoint(sbi, cpc);
sbi              1621 fs/f2fs/checkpoint.c 		f2fs_release_discard_addrs(sbi);
sbi              1623 fs/f2fs/checkpoint.c 		f2fs_clear_prefree_segments(sbi, cpc);
sbi              1625 fs/f2fs/checkpoint.c 	unblock_operations(sbi);
sbi              1626 fs/f2fs/checkpoint.c 	stat_inc_cp_count(sbi->stat_info);
sbi              1629 fs/f2fs/checkpoint.c 		f2fs_notice(sbi, "checkpoint: version = %llx", ckpt_ver);
sbi              1632 fs/f2fs/checkpoint.c 	f2fs_update_time(sbi, CP_TIME);
sbi              1633 fs/f2fs/checkpoint.c 	trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "finish checkpoint");
sbi              1635 fs/f2fs/checkpoint.c 	mutex_unlock(&sbi->cp_mutex);
sbi              1639 fs/f2fs/checkpoint.c void f2fs_init_ino_entry_info(struct f2fs_sb_info *sbi)
sbi              1644 fs/f2fs/checkpoint.c 		struct inode_management *im = &sbi->im[i];
sbi              1652 fs/f2fs/checkpoint.c 	sbi->max_orphans = (sbi->blocks_per_seg - F2FS_CP_PACKS -
sbi              1653 fs/f2fs/checkpoint.c 			NR_CURSEG_TYPE - __cp_payload(sbi)) *
sbi                38 fs/f2fs/data.c 	struct f2fs_sb_info *sbi;
sbi                44 fs/f2fs/data.c 	sbi = F2FS_I_SB(inode);
sbi                46 fs/f2fs/data.c 	if (inode->i_ino == F2FS_META_INO(sbi) ||
sbi                47 fs/f2fs/data.c 			inode->i_ino ==  F2FS_NODE_INO(sbi) ||
sbi                62 fs/f2fs/data.c 		struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi                64 fs/f2fs/data.c 		if (inode->i_ino == F2FS_META_INO(sbi))
sbi                67 fs/f2fs/data.c 		if (inode->i_ino == F2FS_NODE_INO(sbi))
sbi               189 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = bio->bi_private;
sbi               193 fs/f2fs/data.c 	if (time_to_inject(sbi, FAULT_WRITE_IO)) {
sbi               206 fs/f2fs/data.c 			mempool_free(page, sbi->write_io_dummy);
sbi               209 fs/f2fs/data.c 				f2fs_stop_checkpoint(sbi, true);
sbi               218 fs/f2fs/data.c 				f2fs_stop_checkpoint(sbi, true);
sbi               221 fs/f2fs/data.c 		f2fs_bug_on(sbi, page->mapping == NODE_MAPPING(sbi) &&
sbi               224 fs/f2fs/data.c 		dec_page_count(sbi, type);
sbi               225 fs/f2fs/data.c 		if (f2fs_in_warm_node_list(sbi, page))
sbi               226 fs/f2fs/data.c 			f2fs_del_fsync_node_entry(sbi, page);
sbi               230 fs/f2fs/data.c 	if (!get_pages(sbi, F2FS_WB_CP_DATA) &&
sbi               231 fs/f2fs/data.c 				wq_has_sleeper(&sbi->cp_wait))
sbi               232 fs/f2fs/data.c 		wake_up(&sbi->cp_wait);
sbi               240 fs/f2fs/data.c struct block_device *f2fs_target_device(struct f2fs_sb_info *sbi,
sbi               243 fs/f2fs/data.c 	struct block_device *bdev = sbi->sb->s_bdev;
sbi               246 fs/f2fs/data.c 	if (f2fs_is_multi_device(sbi)) {
sbi               247 fs/f2fs/data.c 		for (i = 0; i < sbi->s_ndevs; i++) {
sbi               263 fs/f2fs/data.c int f2fs_target_device_index(struct f2fs_sb_info *sbi, block_t blkaddr)
sbi               267 fs/f2fs/data.c 	if (!f2fs_is_multi_device(sbi))
sbi               270 fs/f2fs/data.c 	for (i = 0; i < sbi->s_ndevs; i++)
sbi               276 fs/f2fs/data.c static bool __same_bdev(struct f2fs_sb_info *sbi,
sbi               279 fs/f2fs/data.c 	struct block_device *b = f2fs_target_device(sbi, blk_addr, NULL);
sbi               288 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = fio->sbi;
sbi               291 fs/f2fs/data.c 	bio = f2fs_bio_alloc(sbi, npages, true);
sbi               293 fs/f2fs/data.c 	f2fs_target_device(sbi, fio->new_blkaddr, bio);
sbi               299 fs/f2fs/data.c 		bio->bi_private = sbi;
sbi               300 fs/f2fs/data.c 		bio->bi_write_hint = f2fs_io_type_to_rw_hint(sbi,
sbi               309 fs/f2fs/data.c static inline void __submit_bio(struct f2fs_sb_info *sbi,
sbi               318 fs/f2fs/data.c 		if (test_opt(sbi, LFS) && current->plug)
sbi               321 fs/f2fs/data.c 		if (F2FS_IO_ALIGNED(sbi))
sbi               325 fs/f2fs/data.c 		start %= F2FS_IO_SIZE(sbi);
sbi               331 fs/f2fs/data.c 		for (; start < F2FS_IO_SIZE(sbi); start++) {
sbi               333 fs/f2fs/data.c 				mempool_alloc(sbi->write_io_dummy,
sbi               335 fs/f2fs/data.c 			f2fs_bug_on(sbi, !page);
sbi               342 fs/f2fs/data.c 				f2fs_bug_on(sbi, 1);
sbi               349 fs/f2fs/data.c 			set_sbi_flag(sbi, SBI_NEED_CP);
sbi               353 fs/f2fs/data.c 		trace_f2fs_submit_read_bio(sbi->sb, type, bio);
sbi               355 fs/f2fs/data.c 		trace_f2fs_submit_write_bio(sbi->sb, type, bio);
sbi               369 fs/f2fs/data.c 		trace_f2fs_prepare_read_bio(io->sbi->sb, fio->type, io->bio);
sbi               371 fs/f2fs/data.c 		trace_f2fs_prepare_write_bio(io->sbi->sb, fio->type, io->bio);
sbi               373 fs/f2fs/data.c 	__submit_bio(io->sbi, io->bio, fio->type);
sbi               407 fs/f2fs/data.c static void __f2fs_submit_merged_write(struct f2fs_sb_info *sbi,
sbi               411 fs/f2fs/data.c 	struct f2fs_bio_info *io = sbi->write_io[btype] + temp;
sbi               420 fs/f2fs/data.c 		if (!test_opt(sbi, NOBARRIER))
sbi               427 fs/f2fs/data.c static void __submit_merged_write_cond(struct f2fs_sb_info *sbi,
sbi               437 fs/f2fs/data.c 			struct f2fs_bio_info *io = sbi->write_io[btype] + temp;
sbi               444 fs/f2fs/data.c 			__f2fs_submit_merged_write(sbi, type, temp);
sbi               452 fs/f2fs/data.c void f2fs_submit_merged_write(struct f2fs_sb_info *sbi, enum page_type type)
sbi               454 fs/f2fs/data.c 	__submit_merged_write_cond(sbi, NULL, NULL, 0, type, true);
sbi               457 fs/f2fs/data.c void f2fs_submit_merged_write_cond(struct f2fs_sb_info *sbi,
sbi               461 fs/f2fs/data.c 	__submit_merged_write_cond(sbi, inode, page, ino, type, false);
sbi               464 fs/f2fs/data.c void f2fs_flush_merged_writes(struct f2fs_sb_info *sbi)
sbi               466 fs/f2fs/data.c 	f2fs_submit_merged_write(sbi, DATA);
sbi               467 fs/f2fs/data.c 	f2fs_submit_merged_write(sbi, NODE);
sbi               468 fs/f2fs/data.c 	f2fs_submit_merged_write(sbi, META);
sbi               481 fs/f2fs/data.c 	if (!f2fs_is_valid_blkaddr(fio->sbi, fio->new_blkaddr,
sbi               502 fs/f2fs/data.c 	inc_page_count(fio->sbi, is_read_io(fio->op) ?
sbi               505 fs/f2fs/data.c 	__submit_bio(fio->sbi, bio, fio->type);
sbi               509 fs/f2fs/data.c static bool page_is_mergeable(struct f2fs_sb_info *sbi, struct bio *bio,
sbi               514 fs/f2fs/data.c 	return __same_bdev(sbi, cur_blkaddr, bio);
sbi               525 fs/f2fs/data.c static bool io_is_mergeable(struct f2fs_sb_info *sbi, struct bio *bio,
sbi               531 fs/f2fs/data.c 	if (F2FS_IO_ALIGNED(sbi) && (fio->type == DATA || fio->type == NODE)) {
sbi               534 fs/f2fs/data.c 		unsigned int io_size = F2FS_IO_SIZE(sbi);
sbi               541 fs/f2fs/data.c 	if (!page_is_mergeable(sbi, bio, last_blkaddr, cur_blkaddr))
sbi               552 fs/f2fs/data.c 	if (!f2fs_is_valid_blkaddr(fio->sbi, fio->new_blkaddr,
sbi               559 fs/f2fs/data.c 	if (bio && !page_is_mergeable(fio->sbi, bio, *fio->last_block,
sbi               561 fs/f2fs/data.c 		__submit_bio(fio->sbi, bio, fio->type);
sbi               571 fs/f2fs/data.c 		__submit_bio(fio->sbi, bio, fio->type);
sbi               579 fs/f2fs/data.c 	inc_page_count(fio->sbi, WB_DATA_TYPE(page));
sbi               587 fs/f2fs/data.c static void f2fs_submit_ipu_bio(struct f2fs_sb_info *sbi, struct bio **bio,
sbi               596 fs/f2fs/data.c 	__submit_bio(sbi, *bio, DATA);
sbi               602 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = fio->sbi;
sbi               604 fs/f2fs/data.c 	struct f2fs_bio_info *io = sbi->write_io[btype] + fio->temp;
sbi               607 fs/f2fs/data.c 	f2fs_bug_on(sbi, is_read_io(fio->op));
sbi               630 fs/f2fs/data.c 	inc_page_count(sbi, WB_DATA_TYPE(bio_page));
sbi               632 fs/f2fs/data.c 	if (io->bio && !io_is_mergeable(sbi, io->bio, io, fio,
sbi               637 fs/f2fs/data.c 		if (F2FS_IO_ALIGNED(sbi) &&
sbi               639 fs/f2fs/data.c 				fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) {
sbi               640 fs/f2fs/data.c 			dec_page_count(sbi, WB_DATA_TYPE(bio_page));
sbi               664 fs/f2fs/data.c 	if (is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN) ||
sbi               665 fs/f2fs/data.c 				!f2fs_is_checkpoint_ready(sbi))
sbi               680 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               685 fs/f2fs/data.c 	bio = f2fs_bio_alloc(sbi, min_t(int, nr_pages, BIO_MAX_PAGES), false);
sbi               688 fs/f2fs/data.c 	f2fs_target_device(sbi, blkaddr, bio);
sbi               716 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               731 fs/f2fs/data.c 	inc_page_count(sbi, F2FS_RD_DATA);
sbi               732 fs/f2fs/data.c 	__submit_bio(sbi, bio, DATA);
sbi               774 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi               782 fs/f2fs/data.c 	if (unlikely((err = inc_valid_block_count(sbi, dn->inode, &count))))
sbi              1030 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi              1040 fs/f2fs/data.c 	err = f2fs_get_node_info(sbi, dn->nid, &ni);
sbi              1049 fs/f2fs/data.c 	if (unlikely((err = inc_valid_block_count(sbi, dn->inode, &count))))
sbi              1055 fs/f2fs/data.c 	f2fs_allocate_data_block(sbi, NULL, old_blkaddr, &dn->data_blkaddr,
sbi              1057 fs/f2fs/data.c 	if (GET_SEGNO(sbi, old_blkaddr) != NULL_SEGNO)
sbi              1058 fs/f2fs/data.c 		invalidate_mapping_pages(META_MAPPING(sbi),
sbi              1116 fs/f2fs/data.c void __do_map_lock(struct f2fs_sb_info *sbi, int flag, bool lock)
sbi              1120 fs/f2fs/data.c 			down_read(&sbi->node_change);
sbi              1122 fs/f2fs/data.c 			up_read(&sbi->node_change);
sbi              1125 fs/f2fs/data.c 			f2fs_lock_op(sbi);
sbi              1127 fs/f2fs/data.c 			f2fs_unlock_op(sbi);
sbi              1145 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1166 fs/f2fs/data.c 		if (test_opt(sbi, LFS) && flag == F2FS_GET_BLOCK_DIO &&
sbi              1185 fs/f2fs/data.c 		__do_map_lock(sbi, flag, true);
sbi              1214 fs/f2fs/data.c 		!f2fs_is_valid_blkaddr(sbi, blkaddr, DATA_GENERIC_ENHANCE)) {
sbi              1221 fs/f2fs/data.c 		if (test_opt(sbi, LFS) && flag == F2FS_GET_BLOCK_DIO &&
sbi              1231 fs/f2fs/data.c 			if (unlikely(f2fs_cp_error(sbi))) {
sbi              1334 fs/f2fs/data.c 		__do_map_lock(sbi, flag, false);
sbi              1335 fs/f2fs/data.c 		f2fs_balance_fs(sbi, dn.node_changed);
sbi              1360 fs/f2fs/data.c 		__do_map_lock(sbi, flag, false);
sbi              1361 fs/f2fs/data.c 		f2fs_balance_fs(sbi, dn.node_changed);
sbi              1469 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1480 fs/f2fs/data.c 		page = f2fs_grab_cache_page(NODE_MAPPING(sbi),
sbi              1485 fs/f2fs/data.c 		err = f2fs_get_node_info(sbi, inode->i_ino, &ni);
sbi              1512 fs/f2fs/data.c 		page = f2fs_grab_cache_page(NODE_MAPPING(sbi), xnid, false);
sbi              1516 fs/f2fs/data.c 		err = f2fs_get_node_info(sbi, xnid, &ni);
sbi              1864 fs/f2fs/data.c 			f2fs_flush_merged_writes(fio->sbi);
sbi              1872 fs/f2fs/data.c 	mpage = find_lock_page(META_MAPPING(fio->sbi), fio->old_blkaddr);
sbi              1885 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1886 fs/f2fs/data.c 	unsigned int policy = SM_I(sbi)->ipu_policy;
sbi              1890 fs/f2fs/data.c 	if (policy & (0x1 << F2FS_IPU_SSR) && f2fs_need_SSR(sbi))
sbi              1893 fs/f2fs/data.c 			utilization(sbi) > SM_I(sbi)->min_ipu_util)
sbi              1895 fs/f2fs/data.c 	if (policy & (0x1 << F2FS_IPU_SSR_UTIL) && f2fs_need_SSR(sbi) &&
sbi              1896 fs/f2fs/data.c 			utilization(sbi) > SM_I(sbi)->min_ipu_util)
sbi              1913 fs/f2fs/data.c 	if (unlikely(fio && is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
sbi              1914 fs/f2fs/data.c 			!f2fs_is_checkpointed_data(sbi, fio->old_blkaddr)))
sbi              1934 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1936 fs/f2fs/data.c 	if (test_opt(sbi, LFS))
sbi              1949 fs/f2fs/data.c 		if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
sbi              1950 fs/f2fs/data.c 			f2fs_is_checkpointed_data(sbi, fio->old_blkaddr)))
sbi              1981 fs/f2fs/data.c 		if (!f2fs_is_valid_blkaddr(fio->sbi, fio->old_blkaddr,
sbi              1991 fs/f2fs/data.c 	if (fio->need_lock == LOCK_REQ && !f2fs_trylock_op(fio->sbi))
sbi              2008 fs/f2fs/data.c 		!f2fs_is_valid_blkaddr(fio->sbi, fio->old_blkaddr,
sbi              2028 fs/f2fs/data.c 			f2fs_unlock_op(fio->sbi);
sbi              2043 fs/f2fs/data.c 		if (!f2fs_trylock_op(fio->sbi)) {
sbi              2050 fs/f2fs/data.c 	err = f2fs_get_node_info(fio->sbi, dn.nid, &ni);
sbi              2073 fs/f2fs/data.c 		f2fs_unlock_op(fio->sbi);
sbi              2084 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2093 fs/f2fs/data.c 		.sbi = sbi,
sbi              2112 fs/f2fs/data.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi              2123 fs/f2fs/data.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi              2144 fs/f2fs/data.c 			f2fs_available_free_memory(sbi, BASE_CHECK))))
sbi              2156 fs/f2fs/data.c 	else if (has_not_enough_free_secs(sbi, 0, 0))
sbi              2197 fs/f2fs/data.c 		f2fs_submit_merged_write_cond(sbi, NULL, page, 0, DATA);
sbi              2206 fs/f2fs/data.c 		f2fs_submit_ipu_bio(sbi, bio, page);
sbi              2207 fs/f2fs/data.c 		f2fs_balance_fs(sbi, need_balance_fs);
sbi              2210 fs/f2fs/data.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi              2211 fs/f2fs/data.c 		f2fs_submit_ipu_bio(sbi, bio, page);
sbi              2212 fs/f2fs/data.c 		f2fs_submit_merged_write(sbi, DATA);
sbi              2253 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_M_SB(mapping);
sbi              2310 fs/f2fs/data.c 			if (atomic_read(&sbi->wb_sync_req[DATA]) &&
sbi              2335 fs/f2fs/data.c 					f2fs_submit_ipu_bio(sbi, &bio, page);
sbi              2396 fs/f2fs/data.c 		__submit_bio(sbi, bio, DATA);
sbi              2423 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2437 fs/f2fs/data.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi              2442 fs/f2fs/data.c 			get_dirty_pages(inode) < nr_pages_to_skip(sbi, DATA) &&
sbi              2443 fs/f2fs/data.c 			f2fs_available_free_memory(sbi, DIRTY_DENTS))
sbi              2454 fs/f2fs/data.c 		atomic_inc(&sbi->wb_sync_req[DATA]);
sbi              2455 fs/f2fs/data.c 	else if (atomic_read(&sbi->wb_sync_req[DATA]))
sbi              2459 fs/f2fs/data.c 		mutex_lock(&sbi->writepages);
sbi              2468 fs/f2fs/data.c 		mutex_unlock(&sbi->writepages);
sbi              2471 fs/f2fs/data.c 		atomic_dec(&sbi->wb_sync_req[DATA]);
sbi              2515 fs/f2fs/data.c static int prepare_write_begin(struct f2fs_sb_info *sbi,
sbi              2545 fs/f2fs/data.c 		__do_map_lock(sbi, flag, true);
sbi              2550 fs/f2fs/data.c 	ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi              2581 fs/f2fs/data.c 				__do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO,
sbi              2597 fs/f2fs/data.c 		__do_map_lock(sbi, flag, false);
sbi              2606 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2615 fs/f2fs/data.c 	if (!f2fs_is_checkpoint_ready(sbi)) {
sbi              2621 fs/f2fs/data.c 			!f2fs_available_free_memory(sbi, INMEM_PAGES)) ||
sbi              2652 fs/f2fs/data.c 	err = prepare_write_begin(sbi, page, pos, len,
sbi              2658 fs/f2fs/data.c 			has_not_enough_free_secs(sbi, 0, 0)) {
sbi              2660 fs/f2fs/data.c 		f2fs_balance_fs(sbi, true);
sbi              2684 fs/f2fs/data.c 		if (!f2fs_is_valid_blkaddr(sbi, blkaddr,
sbi              2709 fs/f2fs/data.c 		f2fs_drop_inmem_pages_all(sbi, false);
sbi              2815 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2822 fs/f2fs/data.c 	int whint_mode = F2FS_OPTION(sbi).whint_mode;
sbi              2890 fs/f2fs/data.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2892 fs/f2fs/data.c 	if (inode->i_ino >= F2FS_ROOT_INO(sbi) &&
sbi              2897 fs/f2fs/data.c 		if (inode->i_ino == F2FS_META_INO(sbi)) {
sbi              2898 fs/f2fs/data.c 			dec_page_count(sbi, F2FS_DIRTY_META);
sbi              2899 fs/f2fs/data.c 		} else if (inode->i_ino == F2FS_NODE_INO(sbi)) {
sbi              2900 fs/f2fs/data.c 			dec_page_count(sbi, F2FS_DIRTY_NODES);
sbi                27 fs/f2fs/debug.c static void update_general_status(struct f2fs_sb_info *sbi)
sbi                29 fs/f2fs/debug.c 	struct f2fs_stat_info *si = F2FS_STAT(sbi);
sbi                30 fs/f2fs/debug.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi                40 fs/f2fs/debug.c 	si->hit_largest = atomic64_read(&sbi->read_hit_largest);
sbi                41 fs/f2fs/debug.c 	si->hit_cached = atomic64_read(&sbi->read_hit_cached);
sbi                42 fs/f2fs/debug.c 	si->hit_rbtree = atomic64_read(&sbi->read_hit_rbtree);
sbi                44 fs/f2fs/debug.c 	si->total_ext = atomic64_read(&sbi->total_hit_ext);
sbi                45 fs/f2fs/debug.c 	si->ext_tree = atomic_read(&sbi->total_ext_tree);
sbi                46 fs/f2fs/debug.c 	si->zombie_tree = atomic_read(&sbi->total_zombie_tree);
sbi                47 fs/f2fs/debug.c 	si->ext_node = atomic_read(&sbi->total_ext_node);
sbi                48 fs/f2fs/debug.c 	si->ndirty_node = get_pages(sbi, F2FS_DIRTY_NODES);
sbi                49 fs/f2fs/debug.c 	si->ndirty_dent = get_pages(sbi, F2FS_DIRTY_DENTS);
sbi                50 fs/f2fs/debug.c 	si->ndirty_meta = get_pages(sbi, F2FS_DIRTY_META);
sbi                51 fs/f2fs/debug.c 	si->ndirty_data = get_pages(sbi, F2FS_DIRTY_DATA);
sbi                52 fs/f2fs/debug.c 	si->ndirty_qdata = get_pages(sbi, F2FS_DIRTY_QDATA);
sbi                53 fs/f2fs/debug.c 	si->ndirty_imeta = get_pages(sbi, F2FS_DIRTY_IMETA);
sbi                54 fs/f2fs/debug.c 	si->ndirty_dirs = sbi->ndirty_inode[DIR_INODE];
sbi                55 fs/f2fs/debug.c 	si->ndirty_files = sbi->ndirty_inode[FILE_INODE];
sbi                56 fs/f2fs/debug.c 	si->nquota_files = sbi->nquota_files;
sbi                57 fs/f2fs/debug.c 	si->ndirty_all = sbi->ndirty_inode[DIRTY_META];
sbi                58 fs/f2fs/debug.c 	si->inmem_pages = get_pages(sbi, F2FS_INMEM_PAGES);
sbi                59 fs/f2fs/debug.c 	si->aw_cnt = atomic_read(&sbi->aw_cnt);
sbi                60 fs/f2fs/debug.c 	si->vw_cnt = atomic_read(&sbi->vw_cnt);
sbi                61 fs/f2fs/debug.c 	si->max_aw_cnt = atomic_read(&sbi->max_aw_cnt);
sbi                62 fs/f2fs/debug.c 	si->max_vw_cnt = atomic_read(&sbi->max_vw_cnt);
sbi                63 fs/f2fs/debug.c 	si->nr_dio_read = get_pages(sbi, F2FS_DIO_READ);
sbi                64 fs/f2fs/debug.c 	si->nr_dio_write = get_pages(sbi, F2FS_DIO_WRITE);
sbi                65 fs/f2fs/debug.c 	si->nr_wb_cp_data = get_pages(sbi, F2FS_WB_CP_DATA);
sbi                66 fs/f2fs/debug.c 	si->nr_wb_data = get_pages(sbi, F2FS_WB_DATA);
sbi                67 fs/f2fs/debug.c 	si->nr_rd_data = get_pages(sbi, F2FS_RD_DATA);
sbi                68 fs/f2fs/debug.c 	si->nr_rd_node = get_pages(sbi, F2FS_RD_NODE);
sbi                69 fs/f2fs/debug.c 	si->nr_rd_meta = get_pages(sbi, F2FS_RD_META);
sbi                70 fs/f2fs/debug.c 	if (SM_I(sbi)->fcc_info) {
sbi                72 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->fcc_info->issued_flush);
sbi                74 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->fcc_info->queued_flush);
sbi                76 fs/f2fs/debug.c 			llist_empty(&SM_I(sbi)->fcc_info->issue_list);
sbi                78 fs/f2fs/debug.c 	if (SM_I(sbi)->dcc_info) {
sbi                80 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->dcc_info->issued_discard);
sbi                82 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->dcc_info->queued_discard);
sbi                84 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->dcc_info->discard_cmd_cnt);
sbi                85 fs/f2fs/debug.c 		si->undiscard_blks = SM_I(sbi)->dcc_info->undiscard_blks;
sbi                87 fs/f2fs/debug.c 	si->total_count = (int)sbi->user_block_count / sbi->blocks_per_seg;
sbi                88 fs/f2fs/debug.c 	si->rsvd_segs = reserved_segments(sbi);
sbi                89 fs/f2fs/debug.c 	si->overp_segs = overprovision_segments(sbi);
sbi                90 fs/f2fs/debug.c 	si->valid_count = valid_user_blocks(sbi);
sbi                91 fs/f2fs/debug.c 	si->discard_blks = discard_blocks(sbi);
sbi                92 fs/f2fs/debug.c 	si->valid_node_count = valid_node_count(sbi);
sbi                93 fs/f2fs/debug.c 	si->valid_inode_count = valid_inode_count(sbi);
sbi                94 fs/f2fs/debug.c 	si->inline_xattr = atomic_read(&sbi->inline_xattr);
sbi                95 fs/f2fs/debug.c 	si->inline_inode = atomic_read(&sbi->inline_inode);
sbi                96 fs/f2fs/debug.c 	si->inline_dir = atomic_read(&sbi->inline_dir);
sbi                97 fs/f2fs/debug.c 	si->append = sbi->im[APPEND_INO].ino_num;
sbi                98 fs/f2fs/debug.c 	si->update = sbi->im[UPDATE_INO].ino_num;
sbi                99 fs/f2fs/debug.c 	si->orphans = sbi->im[ORPHAN_INO].ino_num;
sbi               100 fs/f2fs/debug.c 	si->utilization = utilization(sbi);
sbi               102 fs/f2fs/debug.c 	si->free_segs = free_segments(sbi);
sbi               103 fs/f2fs/debug.c 	si->free_secs = free_sections(sbi);
sbi               104 fs/f2fs/debug.c 	si->prefree_count = prefree_segments(sbi);
sbi               105 fs/f2fs/debug.c 	si->dirty_count = dirty_segments(sbi);
sbi               106 fs/f2fs/debug.c 	if (sbi->node_inode)
sbi               107 fs/f2fs/debug.c 		si->node_pages = NODE_MAPPING(sbi)->nrpages;
sbi               108 fs/f2fs/debug.c 	if (sbi->meta_inode)
sbi               109 fs/f2fs/debug.c 		si->meta_pages = META_MAPPING(sbi)->nrpages;
sbi               110 fs/f2fs/debug.c 	si->nats = NM_I(sbi)->nat_cnt;
sbi               111 fs/f2fs/debug.c 	si->dirty_nats = NM_I(sbi)->dirty_nat_cnt;
sbi               112 fs/f2fs/debug.c 	si->sits = MAIN_SEGS(sbi);
sbi               113 fs/f2fs/debug.c 	si->dirty_sits = SIT_I(sbi)->dirty_sentries;
sbi               114 fs/f2fs/debug.c 	si->free_nids = NM_I(sbi)->nid_cnt[FREE_NID];
sbi               115 fs/f2fs/debug.c 	si->avail_nids = NM_I(sbi)->available_nids;
sbi               116 fs/f2fs/debug.c 	si->alloc_nids = NM_I(sbi)->nid_cnt[PREALLOC_NID];
sbi               117 fs/f2fs/debug.c 	si->bg_gc = sbi->bg_gc;
sbi               118 fs/f2fs/debug.c 	si->io_skip_bggc = sbi->io_skip_bggc;
sbi               119 fs/f2fs/debug.c 	si->other_skip_bggc = sbi->other_skip_bggc;
sbi               120 fs/f2fs/debug.c 	si->skipped_atomic_files[BG_GC] = sbi->skipped_atomic_files[BG_GC];
sbi               121 fs/f2fs/debug.c 	si->skipped_atomic_files[FG_GC] = sbi->skipped_atomic_files[FG_GC];
sbi               122 fs/f2fs/debug.c 	si->util_free = (int)(free_user_blocks(sbi) >> sbi->log_blocks_per_seg)
sbi               123 fs/f2fs/debug.c 		* 100 / (int)(sbi->user_block_count >> sbi->log_blocks_per_seg)
sbi               125 fs/f2fs/debug.c 	si->util_valid = (int)(written_block_count(sbi) >>
sbi               126 fs/f2fs/debug.c 						sbi->log_blocks_per_seg)
sbi               127 fs/f2fs/debug.c 		* 100 / (int)(sbi->user_block_count >> sbi->log_blocks_per_seg)
sbi               131 fs/f2fs/debug.c 		struct curseg_info *curseg = CURSEG_I(sbi, i);
sbi               133 fs/f2fs/debug.c 		si->cursec[i] = GET_SEC_FROM_SEG(sbi, curseg->segno);
sbi               134 fs/f2fs/debug.c 		si->curzone[i] = GET_ZONE_FROM_SEC(sbi, si->cursec[i]);
sbi               138 fs/f2fs/debug.c 		si->meta_count[i] = atomic_read(&sbi->meta_count[i]);
sbi               141 fs/f2fs/debug.c 		si->segment_count[i] = sbi->segment_count[i];
sbi               142 fs/f2fs/debug.c 		si->block_count[i] = sbi->block_count[i];
sbi               145 fs/f2fs/debug.c 	si->inplace_count = atomic_read(&sbi->inplace_count);
sbi               151 fs/f2fs/debug.c static void update_sit_info(struct f2fs_sb_info *sbi)
sbi               153 fs/f2fs/debug.c 	struct f2fs_stat_info *si = F2FS_STAT(sbi);
sbi               161 fs/f2fs/debug.c 	blks_per_sec = BLKS_PER_SEC(sbi);
sbi               163 fs/f2fs/debug.c 	for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) {
sbi               164 fs/f2fs/debug.c 		vblocks = get_valid_blocks(sbi, segno, true);
sbi               173 fs/f2fs/debug.c 	dist = div_u64(MAIN_SECS(sbi) * hblks_per_sec * hblks_per_sec, 100);
sbi               184 fs/f2fs/debug.c static void update_mem_info(struct f2fs_sb_info *sbi)
sbi               186 fs/f2fs/debug.c 	struct f2fs_stat_info *si = F2FS_STAT(sbi);
sbi               196 fs/f2fs/debug.c 	si->base_mem += sizeof(struct f2fs_sb_info) + sbi->sb->s_blocksize;
sbi               198 fs/f2fs/debug.c 	si->base_mem += sizeof(*sbi->ckpt);
sbi               205 fs/f2fs/debug.c 	si->base_mem += MAIN_SEGS(sbi) * sizeof(struct seg_entry);
sbi               206 fs/f2fs/debug.c 	si->base_mem += f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi               207 fs/f2fs/debug.c 	si->base_mem += 2 * SIT_VBLOCK_MAP_SIZE * MAIN_SEGS(sbi);
sbi               208 fs/f2fs/debug.c 	si->base_mem += SIT_VBLOCK_MAP_SIZE * MAIN_SEGS(sbi);
sbi               210 fs/f2fs/debug.c 	if (__is_large_section(sbi))
sbi               211 fs/f2fs/debug.c 		si->base_mem += MAIN_SECS(sbi) * sizeof(struct sec_entry);
sbi               212 fs/f2fs/debug.c 	si->base_mem += __bitmap_size(sbi, SIT_BITMAP);
sbi               216 fs/f2fs/debug.c 	si->base_mem += f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi               217 fs/f2fs/debug.c 	si->base_mem += f2fs_bitmap_size(MAIN_SECS(sbi));
sbi               225 fs/f2fs/debug.c 	si->base_mem += NR_DIRTY_TYPE * f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi               226 fs/f2fs/debug.c 	si->base_mem += f2fs_bitmap_size(MAIN_SECS(sbi));
sbi               230 fs/f2fs/debug.c 	si->base_mem += __bitmap_size(sbi, NAT_BITMAP);
sbi               231 fs/f2fs/debug.c 	si->base_mem += (NM_I(sbi)->nat_bits_blocks << F2FS_BLKSIZE_BITS);
sbi               232 fs/f2fs/debug.c 	si->base_mem += NM_I(sbi)->nat_blocks *
sbi               234 fs/f2fs/debug.c 	si->base_mem += NM_I(sbi)->nat_blocks / 8;
sbi               235 fs/f2fs/debug.c 	si->base_mem += NM_I(sbi)->nat_blocks * sizeof(unsigned short);
sbi               241 fs/f2fs/debug.c 	if (sbi->gc_thread)
sbi               245 fs/f2fs/debug.c 	if (SM_I(sbi)->fcc_info)
sbi               247 fs/f2fs/debug.c 	if (SM_I(sbi)->dcc_info) {
sbi               250 fs/f2fs/debug.c 			atomic_read(&SM_I(sbi)->dcc_info->discard_cmd_cnt);
sbi               254 fs/f2fs/debug.c 	si->cache_mem += (NM_I(sbi)->nid_cnt[FREE_NID] +
sbi               255 fs/f2fs/debug.c 				NM_I(sbi)->nid_cnt[PREALLOC_NID]) *
sbi               257 fs/f2fs/debug.c 	si->cache_mem += NM_I(sbi)->nat_cnt * sizeof(struct nat_entry);
sbi               258 fs/f2fs/debug.c 	si->cache_mem += NM_I(sbi)->dirty_nat_cnt *
sbi               262 fs/f2fs/debug.c 		si->cache_mem += sbi->im[i].ino_num * sizeof(struct ino_entry);
sbi               263 fs/f2fs/debug.c 	si->cache_mem += atomic_read(&sbi->total_ext_tree) *
sbi               265 fs/f2fs/debug.c 	si->cache_mem += atomic_read(&sbi->total_ext_node) *
sbi               269 fs/f2fs/debug.c 	if (sbi->node_inode) {
sbi               270 fs/f2fs/debug.c 		unsigned npages = NODE_MAPPING(sbi)->nrpages;
sbi               273 fs/f2fs/debug.c 	if (sbi->meta_inode) {
sbi               274 fs/f2fs/debug.c 		unsigned npages = META_MAPPING(sbi)->nrpages;
sbi               287 fs/f2fs/debug.c 		update_general_status(si->sbi);
sbi               290 fs/f2fs/debug.c 			si->sbi->sb->s_bdev, i++,
sbi               291 fs/f2fs/debug.c 			f2fs_readonly(si->sbi->sb) ? "RO": "RW",
sbi               292 fs/f2fs/debug.c 			is_set_ckpt_flags(si->sbi, CP_DISABLED_FLAG) ?
sbi               293 fs/f2fs/debug.c 			"Disabled": (f2fs_cp_error(si->sbi) ? "Error": "Good"));
sbi               300 fs/f2fs/debug.c 		if (test_opt(si->sbi, DISCARD))
sbi               444 fs/f2fs/debug.c 		update_sit_info(si->sbi);
sbi               449 fs/f2fs/debug.c 		update_mem_info(si->sbi);
sbi               465 fs/f2fs/debug.c int f2fs_build_stats(struct f2fs_sb_info *sbi)
sbi               467 fs/f2fs/debug.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi               471 fs/f2fs/debug.c 	si = f2fs_kzalloc(sbi, sizeof(struct f2fs_stat_info), GFP_KERNEL);
sbi               483 fs/f2fs/debug.c 	si->sbi = sbi;
sbi               484 fs/f2fs/debug.c 	sbi->stat_info = si;
sbi               486 fs/f2fs/debug.c 	atomic64_set(&sbi->total_hit_ext, 0);
sbi               487 fs/f2fs/debug.c 	atomic64_set(&sbi->read_hit_rbtree, 0);
sbi               488 fs/f2fs/debug.c 	atomic64_set(&sbi->read_hit_largest, 0);
sbi               489 fs/f2fs/debug.c 	atomic64_set(&sbi->read_hit_cached, 0);
sbi               491 fs/f2fs/debug.c 	atomic_set(&sbi->inline_xattr, 0);
sbi               492 fs/f2fs/debug.c 	atomic_set(&sbi->inline_inode, 0);
sbi               493 fs/f2fs/debug.c 	atomic_set(&sbi->inline_dir, 0);
sbi               494 fs/f2fs/debug.c 	atomic_set(&sbi->inplace_count, 0);
sbi               496 fs/f2fs/debug.c 		atomic_set(&sbi->meta_count[i], 0);
sbi               498 fs/f2fs/debug.c 	atomic_set(&sbi->aw_cnt, 0);
sbi               499 fs/f2fs/debug.c 	atomic_set(&sbi->vw_cnt, 0);
sbi               500 fs/f2fs/debug.c 	atomic_set(&sbi->max_aw_cnt, 0);
sbi               501 fs/f2fs/debug.c 	atomic_set(&sbi->max_vw_cnt, 0);
sbi               510 fs/f2fs/debug.c void f2fs_destroy_stats(struct f2fs_sb_info *sbi)
sbi               512 fs/f2fs/debug.c 	struct f2fs_stat_info *si = F2FS_STAT(sbi);
sbi               117 fs/f2fs/dir.c  	const struct f2fs_sb_info *sbi = F2FS_SB(parent->i_sb);
sbi               118 fs/f2fs/dir.c  	const struct unicode_map *um = sbi->s_encoding;
sbi               130 fs/f2fs/dir.c  		if (f2fs_has_strict_mode(sbi))
sbi               146 fs/f2fs/dir.c  	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               153 fs/f2fs/dir.c  	cf_name->name = f2fs_kmalloc(sbi, F2FS_NAME_LEN, GFP_NOFS);
sbi               157 fs/f2fs/dir.c  	cf_name->len = utf8_casefold(sbi->s_encoding,
sbi               176 fs/f2fs/dir.c  	struct f2fs_sb_info *sbi = F2FS_I_SB(parent);
sbi               187 fs/f2fs/dir.c  	if (sbi->s_encoding && IS_CASEFOLDED(parent)) {
sbi               784 fs/f2fs/dir.c  	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               802 fs/f2fs/dir.c  		f2fs_release_orphan_inode(sbi);
sbi               902 fs/f2fs/dir.c  	struct f2fs_sb_info *sbi = F2FS_I_SB(d->inode);
sbi               904 fs/f2fs/dir.c  	bool readdir_ra = sbi->readdir_ra == 1;
sbi               924 fs/f2fs/dir.c  			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               937 fs/f2fs/dir.c  			f2fs_warn(sbi, "%s: corrupted namelen=%d, run fsck to fix.",
sbi               939 fs/f2fs/dir.c  			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               964 fs/f2fs/dir.c  			f2fs_ra_node_page(sbi, le32_to_cpu(de->ino));
sbi              1085 fs/f2fs/dir.c  	struct f2fs_sb_info *sbi = F2FS_SB(dentry->d_sb);
sbi              1086 fs/f2fs/dir.c  	const struct unicode_map *um = sbi->s_encoding;
sbi              1094 fs/f2fs/dir.c  	norm = f2fs_kmalloc(sbi, PATH_MAX, GFP_ATOMIC);
sbi              1100 fs/f2fs/dir.c  		if (f2fs_has_strict_mode(sbi))
sbi                61 fs/f2fs/extent_cache.c struct rb_node **f2fs_lookup_rb_tree_for_insert(struct f2fs_sb_info *sbi,
sbi                79 fs/f2fs/extent_cache.c 			f2fs_bug_on(sbi, 1);
sbi               168 fs/f2fs/extent_cache.c bool f2fs_check_rb_tree_consistence(struct f2fs_sb_info *sbi,
sbi               187 fs/f2fs/extent_cache.c 			f2fs_info(sbi, "inconsistent rbtree, cur(%u, %u) next(%u, %u)",
sbi               202 fs/f2fs/extent_cache.c static struct extent_node *__attach_extent_node(struct f2fs_sb_info *sbi,
sbi               220 fs/f2fs/extent_cache.c 	atomic_inc(&sbi->total_ext_node);
sbi               224 fs/f2fs/extent_cache.c static void __detach_extent_node(struct f2fs_sb_info *sbi,
sbi               229 fs/f2fs/extent_cache.c 	atomic_dec(&sbi->total_ext_node);
sbi               242 fs/f2fs/extent_cache.c static void __release_extent_node(struct f2fs_sb_info *sbi,
sbi               245 fs/f2fs/extent_cache.c 	spin_lock(&sbi->extent_lock);
sbi               246 fs/f2fs/extent_cache.c 	f2fs_bug_on(sbi, list_empty(&en->list));
sbi               248 fs/f2fs/extent_cache.c 	spin_unlock(&sbi->extent_lock);
sbi               250 fs/f2fs/extent_cache.c 	__detach_extent_node(sbi, et, en);
sbi               255 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               259 fs/f2fs/extent_cache.c 	mutex_lock(&sbi->extent_tree_lock);
sbi               260 fs/f2fs/extent_cache.c 	et = radix_tree_lookup(&sbi->extent_tree_root, ino);
sbi               263 fs/f2fs/extent_cache.c 		f2fs_radix_tree_insert(&sbi->extent_tree_root, ino, et);
sbi               271 fs/f2fs/extent_cache.c 		atomic_inc(&sbi->total_ext_tree);
sbi               273 fs/f2fs/extent_cache.c 		atomic_dec(&sbi->total_zombie_tree);
sbi               276 fs/f2fs/extent_cache.c 	mutex_unlock(&sbi->extent_tree_lock);
sbi               284 fs/f2fs/extent_cache.c static struct extent_node *__init_extent_tree(struct f2fs_sb_info *sbi,
sbi               290 fs/f2fs/extent_cache.c 	en = __attach_extent_node(sbi, et, ei, NULL, p, true);
sbi               299 fs/f2fs/extent_cache.c static unsigned int __free_extent_tree(struct f2fs_sb_info *sbi,
sbi               310 fs/f2fs/extent_cache.c 		__release_extent_node(sbi, et, en);
sbi               330 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               355 fs/f2fs/extent_cache.c 	en = __init_extent_tree(sbi, et, &ei);
sbi               357 fs/f2fs/extent_cache.c 		spin_lock(&sbi->extent_lock);
sbi               358 fs/f2fs/extent_cache.c 		list_add_tail(&en->list, &sbi->extent_list);
sbi               359 fs/f2fs/extent_cache.c 		spin_unlock(&sbi->extent_lock);
sbi               379 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               384 fs/f2fs/extent_cache.c 	f2fs_bug_on(sbi, !et);
sbi               394 fs/f2fs/extent_cache.c 		stat_inc_largest_node_hit(sbi);
sbi               404 fs/f2fs/extent_cache.c 		stat_inc_cached_node_hit(sbi);
sbi               406 fs/f2fs/extent_cache.c 		stat_inc_rbtree_node_hit(sbi);
sbi               409 fs/f2fs/extent_cache.c 	spin_lock(&sbi->extent_lock);
sbi               411 fs/f2fs/extent_cache.c 		list_move_tail(&en->list, &sbi->extent_list);
sbi               414 fs/f2fs/extent_cache.c 	spin_unlock(&sbi->extent_lock);
sbi               417 fs/f2fs/extent_cache.c 	stat_inc_total_hit(sbi);
sbi               424 fs/f2fs/extent_cache.c static struct extent_node *__try_merge_extent_node(struct f2fs_sb_info *sbi,
sbi               442 fs/f2fs/extent_cache.c 			__release_extent_node(sbi, et, prev_ex);
sbi               452 fs/f2fs/extent_cache.c 	spin_lock(&sbi->extent_lock);
sbi               454 fs/f2fs/extent_cache.c 		list_move_tail(&en->list, &sbi->extent_list);
sbi               457 fs/f2fs/extent_cache.c 	spin_unlock(&sbi->extent_lock);
sbi               461 fs/f2fs/extent_cache.c static struct extent_node *__insert_extent_tree(struct f2fs_sb_info *sbi,
sbi               479 fs/f2fs/extent_cache.c 	p = f2fs_lookup_rb_tree_for_insert(sbi, &et->root, &parent,
sbi               482 fs/f2fs/extent_cache.c 	en = __attach_extent_node(sbi, et, ei, parent, p, leftmost);
sbi               489 fs/f2fs/extent_cache.c 	spin_lock(&sbi->extent_lock);
sbi               490 fs/f2fs/extent_cache.c 	list_add_tail(&en->list, &sbi->extent_list);
sbi               492 fs/f2fs/extent_cache.c 	spin_unlock(&sbi->extent_lock);
sbi               499 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               550 fs/f2fs/extent_cache.c 		f2fs_bug_on(sbi, pos >= org_end);
sbi               563 fs/f2fs/extent_cache.c 				en1 = __insert_extent_tree(sbi, et, &ei,
sbi               585 fs/f2fs/extent_cache.c 			__release_extent_node(sbi, et, en);
sbi               603 fs/f2fs/extent_cache.c 		if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en))
sbi               604 fs/f2fs/extent_cache.c 			__insert_extent_tree(sbi, et, &ei,
sbi               618 fs/f2fs/extent_cache.c 		__free_extent_tree(sbi, et);
sbi               631 fs/f2fs/extent_cache.c unsigned int f2fs_shrink_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink)
sbi               638 fs/f2fs/extent_cache.c 	if (!test_opt(sbi, EXTENT_CACHE))
sbi               641 fs/f2fs/extent_cache.c 	if (!atomic_read(&sbi->total_zombie_tree))
sbi               644 fs/f2fs/extent_cache.c 	if (!mutex_trylock(&sbi->extent_tree_lock))
sbi               648 fs/f2fs/extent_cache.c 	list_for_each_entry_safe(et, next, &sbi->zombie_list, list) {
sbi               651 fs/f2fs/extent_cache.c 			node_cnt += __free_extent_tree(sbi, et);
sbi               654 fs/f2fs/extent_cache.c 		f2fs_bug_on(sbi, atomic_read(&et->node_cnt));
sbi               656 fs/f2fs/extent_cache.c 		radix_tree_delete(&sbi->extent_tree_root, et->ino);
sbi               658 fs/f2fs/extent_cache.c 		atomic_dec(&sbi->total_ext_tree);
sbi               659 fs/f2fs/extent_cache.c 		atomic_dec(&sbi->total_zombie_tree);
sbi               666 fs/f2fs/extent_cache.c 	mutex_unlock(&sbi->extent_tree_lock);
sbi               670 fs/f2fs/extent_cache.c 	if (!mutex_trylock(&sbi->extent_tree_lock))
sbi               675 fs/f2fs/extent_cache.c 	spin_lock(&sbi->extent_lock);
sbi               677 fs/f2fs/extent_cache.c 		if (list_empty(&sbi->extent_list))
sbi               679 fs/f2fs/extent_cache.c 		en = list_first_entry(&sbi->extent_list,
sbi               684 fs/f2fs/extent_cache.c 			list_move_tail(&en->list, &sbi->extent_list);
sbi               689 fs/f2fs/extent_cache.c 		spin_unlock(&sbi->extent_lock);
sbi               691 fs/f2fs/extent_cache.c 		__detach_extent_node(sbi, et, en);
sbi               695 fs/f2fs/extent_cache.c 		spin_lock(&sbi->extent_lock);
sbi               697 fs/f2fs/extent_cache.c 	spin_unlock(&sbi->extent_lock);
sbi               700 fs/f2fs/extent_cache.c 	mutex_unlock(&sbi->extent_tree_lock);
sbi               702 fs/f2fs/extent_cache.c 	trace_f2fs_shrink_extent_tree(sbi, node_cnt, tree_cnt);
sbi               709 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               717 fs/f2fs/extent_cache.c 	node_cnt = __free_extent_tree(sbi, et);
sbi               725 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               735 fs/f2fs/extent_cache.c 	__free_extent_tree(sbi, et);
sbi               747 fs/f2fs/extent_cache.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               756 fs/f2fs/extent_cache.c 		mutex_lock(&sbi->extent_tree_lock);
sbi               757 fs/f2fs/extent_cache.c 		list_add_tail(&et->list, &sbi->zombie_list);
sbi               758 fs/f2fs/extent_cache.c 		atomic_inc(&sbi->total_zombie_tree);
sbi               759 fs/f2fs/extent_cache.c 		mutex_unlock(&sbi->extent_tree_lock);
sbi               767 fs/f2fs/extent_cache.c 	mutex_lock(&sbi->extent_tree_lock);
sbi               768 fs/f2fs/extent_cache.c 	f2fs_bug_on(sbi, atomic_read(&et->node_cnt));
sbi               769 fs/f2fs/extent_cache.c 	radix_tree_delete(&sbi->extent_tree_root, inode->i_ino);
sbi               771 fs/f2fs/extent_cache.c 	atomic_dec(&sbi->total_ext_tree);
sbi               772 fs/f2fs/extent_cache.c 	mutex_unlock(&sbi->extent_tree_lock);
sbi               816 fs/f2fs/extent_cache.c void f2fs_init_extent_cache_info(struct f2fs_sb_info *sbi)
sbi               818 fs/f2fs/extent_cache.c 	INIT_RADIX_TREE(&sbi->extent_tree_root, GFP_NOIO);
sbi               819 fs/f2fs/extent_cache.c 	mutex_init(&sbi->extent_tree_lock);
sbi               820 fs/f2fs/extent_cache.c 	INIT_LIST_HEAD(&sbi->extent_list);
sbi               821 fs/f2fs/extent_cache.c 	spin_lock_init(&sbi->extent_lock);
sbi               822 fs/f2fs/extent_cache.c 	atomic_set(&sbi->total_ext_tree, 0);
sbi               823 fs/f2fs/extent_cache.c 	INIT_LIST_HEAD(&sbi->zombie_list);
sbi               824 fs/f2fs/extent_cache.c 	atomic_set(&sbi->total_zombie_tree, 0);
sbi               825 fs/f2fs/extent_cache.c 	atomic_set(&sbi->total_ext_node, 0);
sbi                31 fs/f2fs/f2fs.h #define f2fs_bug_on(sbi, condition)	BUG_ON(condition)
sbi                33 fs/f2fs/f2fs.h #define f2fs_bug_on(sbi, condition)					\
sbi                37 fs/f2fs/f2fs.h 			set_sbi_flag(sbi, SBI_NEED_FSCK);		\
sbi               105 fs/f2fs/f2fs.h #define F2FS_OPTION(sbi)	((sbi)->mount_opt)
sbi               106 fs/f2fs/f2fs.h #define clear_opt(sbi, option)	(F2FS_OPTION(sbi).opt &= ~F2FS_MOUNT_##option)
sbi               107 fs/f2fs/f2fs.h #define set_opt(sbi, option)	(F2FS_OPTION(sbi).opt |= F2FS_MOUNT_##option)
sbi               108 fs/f2fs/f2fs.h #define test_opt(sbi, option)	(F2FS_OPTION(sbi).opt & F2FS_MOUNT_##option)
sbi               162 fs/f2fs/f2fs.h #define F2FS_HAS_FEATURE(sbi, mask)	__F2FS_HAS_FEATURE(sbi->raw_super, mask)
sbi               163 fs/f2fs/f2fs.h #define F2FS_SET_FEATURE(sbi, mask)					\
sbi               164 fs/f2fs/f2fs.h 	(sbi->raw_super->feature |= cpu_to_le32(mask))
sbi               165 fs/f2fs/f2fs.h #define F2FS_CLEAR_FEATURE(sbi, mask)					\
sbi               166 fs/f2fs/f2fs.h 	(sbi->raw_super->feature &= ~cpu_to_le32(mask))
sbi               190 fs/f2fs/f2fs.h #define MAX_DISCARD_BLOCKS(sbi)		BLKS_PER_SEC(sbi)
sbi              1049 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi;	/* f2fs_sb_info pointer */
sbi              1074 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi;	/* f2fs superblock */
sbi              1083 fs/f2fs/f2fs.h #define FDEV(i)				(sbi->devs[i])
sbi              1166 fs/f2fs/f2fs.h #define DUMMY_ENCRYPTION_ENABLED(sbi) \
sbi              1167 fs/f2fs/f2fs.h 			(unlikely(F2FS_OPTION(sbi).test_dummy_encryption))
sbi              1169 fs/f2fs/f2fs.h #define DUMMY_ENCRYPTION_ENABLED(sbi) (0)
sbi              1374 fs/f2fs/f2fs.h static inline bool time_to_inject(struct f2fs_sb_info *sbi, int type)
sbi              1376 fs/f2fs/f2fs.h 	struct f2fs_fault_info *ffi = &F2FS_OPTION(sbi).fault_info;
sbi              1393 fs/f2fs/f2fs.h static inline bool time_to_inject(struct f2fs_sb_info *sbi, int type)
sbi              1405 fs/f2fs/f2fs.h static inline bool f2fs_is_multi_device(struct f2fs_sb_info *sbi)
sbi              1407 fs/f2fs/f2fs.h 	return sbi->s_ndevs > 1;
sbi              1417 fs/f2fs/f2fs.h static inline void f2fs_update_time(struct f2fs_sb_info *sbi, int type)
sbi              1421 fs/f2fs/f2fs.h 	sbi->last_time[type] = now;
sbi              1425 fs/f2fs/f2fs.h 		sbi->last_time[DISCARD_TIME] = now;
sbi              1426 fs/f2fs/f2fs.h 		sbi->last_time[GC_TIME] = now;
sbi              1430 fs/f2fs/f2fs.h static inline bool f2fs_time_over(struct f2fs_sb_info *sbi, int type)
sbi              1432 fs/f2fs/f2fs.h 	unsigned long interval = sbi->interval_time[type] * HZ;
sbi              1434 fs/f2fs/f2fs.h 	return time_after(jiffies, sbi->last_time[type] + interval);
sbi              1437 fs/f2fs/f2fs.h static inline unsigned int f2fs_time_to_wait(struct f2fs_sb_info *sbi,
sbi              1440 fs/f2fs/f2fs.h 	unsigned long interval = sbi->interval_time[type] * HZ;
sbi              1444 fs/f2fs/f2fs.h 	delta = (sbi->last_time[type] + interval) - jiffies;
sbi              1454 fs/f2fs/f2fs.h static inline u32 __f2fs_crc32(struct f2fs_sb_info *sbi, u32 crc,
sbi              1463 fs/f2fs/f2fs.h 	BUG_ON(crypto_shash_descsize(sbi->s_chksum_driver) != sizeof(desc.ctx));
sbi              1465 fs/f2fs/f2fs.h 	desc.shash.tfm = sbi->s_chksum_driver;
sbi              1474 fs/f2fs/f2fs.h static inline u32 f2fs_crc32(struct f2fs_sb_info *sbi, const void *address,
sbi              1477 fs/f2fs/f2fs.h 	return __f2fs_crc32(sbi, F2FS_SUPER_MAGIC, address, length);
sbi              1480 fs/f2fs/f2fs.h static inline bool f2fs_crc_valid(struct f2fs_sb_info *sbi, __u32 blk_crc,
sbi              1483 fs/f2fs/f2fs.h 	return f2fs_crc32(sbi, buf, buf_size) == blk_crc;
sbi              1486 fs/f2fs/f2fs.h static inline u32 f2fs_chksum(struct f2fs_sb_info *sbi, u32 crc,
sbi              1489 fs/f2fs/f2fs.h 	return __f2fs_crc32(sbi, crc, address, length);
sbi              1517 fs/f2fs/f2fs.h static inline struct f2fs_super_block *F2FS_RAW_SUPER(struct f2fs_sb_info *sbi)
sbi              1519 fs/f2fs/f2fs.h 	return (struct f2fs_super_block *)(sbi->raw_super);
sbi              1522 fs/f2fs/f2fs.h static inline struct f2fs_checkpoint *F2FS_CKPT(struct f2fs_sb_info *sbi)
sbi              1524 fs/f2fs/f2fs.h 	return (struct f2fs_checkpoint *)(sbi->ckpt);
sbi              1537 fs/f2fs/f2fs.h static inline struct f2fs_nm_info *NM_I(struct f2fs_sb_info *sbi)
sbi              1539 fs/f2fs/f2fs.h 	return (struct f2fs_nm_info *)(sbi->nm_info);
sbi              1542 fs/f2fs/f2fs.h static inline struct f2fs_sm_info *SM_I(struct f2fs_sb_info *sbi)
sbi              1544 fs/f2fs/f2fs.h 	return (struct f2fs_sm_info *)(sbi->sm_info);
sbi              1547 fs/f2fs/f2fs.h static inline struct sit_info *SIT_I(struct f2fs_sb_info *sbi)
sbi              1549 fs/f2fs/f2fs.h 	return (struct sit_info *)(SM_I(sbi)->sit_info);
sbi              1552 fs/f2fs/f2fs.h static inline struct free_segmap_info *FREE_I(struct f2fs_sb_info *sbi)
sbi              1554 fs/f2fs/f2fs.h 	return (struct free_segmap_info *)(SM_I(sbi)->free_info);
sbi              1557 fs/f2fs/f2fs.h static inline struct dirty_seglist_info *DIRTY_I(struct f2fs_sb_info *sbi)
sbi              1559 fs/f2fs/f2fs.h 	return (struct dirty_seglist_info *)(SM_I(sbi)->dirty_info);
sbi              1562 fs/f2fs/f2fs.h static inline struct address_space *META_MAPPING(struct f2fs_sb_info *sbi)
sbi              1564 fs/f2fs/f2fs.h 	return sbi->meta_inode->i_mapping;
sbi              1567 fs/f2fs/f2fs.h static inline struct address_space *NODE_MAPPING(struct f2fs_sb_info *sbi)
sbi              1569 fs/f2fs/f2fs.h 	return sbi->node_inode->i_mapping;
sbi              1572 fs/f2fs/f2fs.h static inline bool is_sbi_flag_set(struct f2fs_sb_info *sbi, unsigned int type)
sbi              1574 fs/f2fs/f2fs.h 	return test_bit(type, &sbi->s_flag);
sbi              1577 fs/f2fs/f2fs.h static inline void set_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type)
sbi              1579 fs/f2fs/f2fs.h 	set_bit(type, &sbi->s_flag);
sbi              1582 fs/f2fs/f2fs.h static inline void clear_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type)
sbi              1584 fs/f2fs/f2fs.h 	clear_bit(type, &sbi->s_flag);
sbi              1612 fs/f2fs/f2fs.h static inline bool is_set_ckpt_flags(struct f2fs_sb_info *sbi, unsigned int f)
sbi              1614 fs/f2fs/f2fs.h 	return __is_set_ckpt_flags(F2FS_CKPT(sbi), f);
sbi              1626 fs/f2fs/f2fs.h static inline void set_ckpt_flags(struct f2fs_sb_info *sbi, unsigned int f)
sbi              1630 fs/f2fs/f2fs.h 	spin_lock_irqsave(&sbi->cp_lock, flags);
sbi              1631 fs/f2fs/f2fs.h 	__set_ckpt_flags(F2FS_CKPT(sbi), f);
sbi              1632 fs/f2fs/f2fs.h 	spin_unlock_irqrestore(&sbi->cp_lock, flags);
sbi              1644 fs/f2fs/f2fs.h static inline void clear_ckpt_flags(struct f2fs_sb_info *sbi, unsigned int f)
sbi              1648 fs/f2fs/f2fs.h 	spin_lock_irqsave(&sbi->cp_lock, flags);
sbi              1649 fs/f2fs/f2fs.h 	__clear_ckpt_flags(F2FS_CKPT(sbi), f);
sbi              1650 fs/f2fs/f2fs.h 	spin_unlock_irqrestore(&sbi->cp_lock, flags);
sbi              1653 fs/f2fs/f2fs.h static inline void disable_nat_bits(struct f2fs_sb_info *sbi, bool lock)
sbi              1665 fs/f2fs/f2fs.h 		spin_lock_irqsave(&sbi->cp_lock, flags);
sbi              1666 fs/f2fs/f2fs.h 	__clear_ckpt_flags(F2FS_CKPT(sbi), CP_NAT_BITS_FLAG);
sbi              1667 fs/f2fs/f2fs.h 	nat_bits = NM_I(sbi)->nat_bits;
sbi              1668 fs/f2fs/f2fs.h 	NM_I(sbi)->nat_bits = NULL;
sbi              1670 fs/f2fs/f2fs.h 		spin_unlock_irqrestore(&sbi->cp_lock, flags);
sbi              1675 fs/f2fs/f2fs.h static inline bool enabled_nat_bits(struct f2fs_sb_info *sbi,
sbi              1678 fs/f2fs/f2fs.h 	bool set = is_set_ckpt_flags(sbi, CP_NAT_BITS_FLAG);
sbi              1683 fs/f2fs/f2fs.h static inline void f2fs_lock_op(struct f2fs_sb_info *sbi)
sbi              1685 fs/f2fs/f2fs.h 	down_read(&sbi->cp_rwsem);
sbi              1688 fs/f2fs/f2fs.h static inline int f2fs_trylock_op(struct f2fs_sb_info *sbi)
sbi              1690 fs/f2fs/f2fs.h 	return down_read_trylock(&sbi->cp_rwsem);
sbi              1693 fs/f2fs/f2fs.h static inline void f2fs_unlock_op(struct f2fs_sb_info *sbi)
sbi              1695 fs/f2fs/f2fs.h 	up_read(&sbi->cp_rwsem);
sbi              1698 fs/f2fs/f2fs.h static inline void f2fs_lock_all(struct f2fs_sb_info *sbi)
sbi              1700 fs/f2fs/f2fs.h 	down_write(&sbi->cp_rwsem);
sbi              1703 fs/f2fs/f2fs.h static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi)
sbi              1705 fs/f2fs/f2fs.h 	up_write(&sbi->cp_rwsem);
sbi              1708 fs/f2fs/f2fs.h static inline int __get_cp_reason(struct f2fs_sb_info *sbi)
sbi              1712 fs/f2fs/f2fs.h 	if (test_opt(sbi, FASTBOOT))
sbi              1714 fs/f2fs/f2fs.h 	if (is_sbi_flag_set(sbi, SBI_IS_CLOSE))
sbi              1724 fs/f2fs/f2fs.h static inline bool __exist_node_summaries(struct f2fs_sb_info *sbi)
sbi              1726 fs/f2fs/f2fs.h 	return (is_set_ckpt_flags(sbi, CP_UMOUNT_FLAG) ||
sbi              1727 fs/f2fs/f2fs.h 			is_set_ckpt_flags(sbi, CP_FASTBOOT_FLAG));
sbi              1745 fs/f2fs/f2fs.h static inline bool __allow_reserved_blocks(struct f2fs_sb_info *sbi,
sbi              1750 fs/f2fs/f2fs.h 	if (!test_opt(sbi, RESERVE_ROOT))
sbi              1754 fs/f2fs/f2fs.h 	if (uid_eq(F2FS_OPTION(sbi).s_resuid, current_fsuid()))
sbi              1756 fs/f2fs/f2fs.h 	if (!gid_eq(F2FS_OPTION(sbi).s_resgid, GLOBAL_ROOT_GID) &&
sbi              1757 fs/f2fs/f2fs.h 					in_group_p(F2FS_OPTION(sbi).s_resgid))
sbi              1765 fs/f2fs/f2fs.h static inline int inc_valid_block_count(struct f2fs_sb_info *sbi,
sbi              1776 fs/f2fs/f2fs.h 	if (time_to_inject(sbi, FAULT_BLOCK)) {
sbi              1786 fs/f2fs/f2fs.h 	percpu_counter_add(&sbi->alloc_valid_block_count, (*count));
sbi              1788 fs/f2fs/f2fs.h 	spin_lock(&sbi->stat_lock);
sbi              1789 fs/f2fs/f2fs.h 	sbi->total_valid_block_count += (block_t)(*count);
sbi              1790 fs/f2fs/f2fs.h 	avail_user_block_count = sbi->user_block_count -
sbi              1791 fs/f2fs/f2fs.h 					sbi->current_reserved_blocks;
sbi              1793 fs/f2fs/f2fs.h 	if (!__allow_reserved_blocks(sbi, inode, true))
sbi              1794 fs/f2fs/f2fs.h 		avail_user_block_count -= F2FS_OPTION(sbi).root_reserved_blocks;
sbi              1795 fs/f2fs/f2fs.h 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi              1796 fs/f2fs/f2fs.h 		if (avail_user_block_count > sbi->unusable_block_count)
sbi              1797 fs/f2fs/f2fs.h 			avail_user_block_count -= sbi->unusable_block_count;
sbi              1801 fs/f2fs/f2fs.h 	if (unlikely(sbi->total_valid_block_count > avail_user_block_count)) {
sbi              1802 fs/f2fs/f2fs.h 		diff = sbi->total_valid_block_count - avail_user_block_count;
sbi              1807 fs/f2fs/f2fs.h 		sbi->total_valid_block_count -= diff;
sbi              1809 fs/f2fs/f2fs.h 			spin_unlock(&sbi->stat_lock);
sbi              1813 fs/f2fs/f2fs.h 	spin_unlock(&sbi->stat_lock);
sbi              1816 fs/f2fs/f2fs.h 		percpu_counter_sub(&sbi->alloc_valid_block_count, release);
sbi              1823 fs/f2fs/f2fs.h 	percpu_counter_sub(&sbi->alloc_valid_block_count, release);
sbi              1830 fs/f2fs/f2fs.h void f2fs_printk(struct f2fs_sb_info *sbi, const char *fmt, ...);
sbi              1832 fs/f2fs/f2fs.h #define f2fs_err(sbi, fmt, ...)						\
sbi              1833 fs/f2fs/f2fs.h 	f2fs_printk(sbi, KERN_ERR fmt, ##__VA_ARGS__)
sbi              1834 fs/f2fs/f2fs.h #define f2fs_warn(sbi, fmt, ...)					\
sbi              1835 fs/f2fs/f2fs.h 	f2fs_printk(sbi, KERN_WARNING fmt, ##__VA_ARGS__)
sbi              1836 fs/f2fs/f2fs.h #define f2fs_notice(sbi, fmt, ...)					\
sbi              1837 fs/f2fs/f2fs.h 	f2fs_printk(sbi, KERN_NOTICE fmt, ##__VA_ARGS__)
sbi              1838 fs/f2fs/f2fs.h #define f2fs_info(sbi, fmt, ...)					\
sbi              1839 fs/f2fs/f2fs.h 	f2fs_printk(sbi, KERN_INFO fmt, ##__VA_ARGS__)
sbi              1840 fs/f2fs/f2fs.h #define f2fs_debug(sbi, fmt, ...)					\
sbi              1841 fs/f2fs/f2fs.h 	f2fs_printk(sbi, KERN_DEBUG fmt, ##__VA_ARGS__)
sbi              1843 fs/f2fs/f2fs.h static inline void dec_valid_block_count(struct f2fs_sb_info *sbi,
sbi              1849 fs/f2fs/f2fs.h 	spin_lock(&sbi->stat_lock);
sbi              1850 fs/f2fs/f2fs.h 	f2fs_bug_on(sbi, sbi->total_valid_block_count < (block_t) count);
sbi              1851 fs/f2fs/f2fs.h 	sbi->total_valid_block_count -= (block_t)count;
sbi              1852 fs/f2fs/f2fs.h 	if (sbi->reserved_blocks &&
sbi              1853 fs/f2fs/f2fs.h 		sbi->current_reserved_blocks < sbi->reserved_blocks)
sbi              1854 fs/f2fs/f2fs.h 		sbi->current_reserved_blocks = min(sbi->reserved_blocks,
sbi              1855 fs/f2fs/f2fs.h 					sbi->current_reserved_blocks + count);
sbi              1856 fs/f2fs/f2fs.h 	spin_unlock(&sbi->stat_lock);
sbi              1858 fs/f2fs/f2fs.h 		f2fs_warn(sbi, "Inconsistent i_blocks, ino:%lu, iblocks:%llu, sectors:%llu",
sbi              1862 fs/f2fs/f2fs.h 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              1868 fs/f2fs/f2fs.h static inline void inc_page_count(struct f2fs_sb_info *sbi, int count_type)
sbi              1870 fs/f2fs/f2fs.h 	atomic_inc(&sbi->nr_pages[count_type]);
sbi              1877 fs/f2fs/f2fs.h 		set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1889 fs/f2fs/f2fs.h static inline void dec_page_count(struct f2fs_sb_info *sbi, int count_type)
sbi              1891 fs/f2fs/f2fs.h 	atomic_dec(&sbi->nr_pages[count_type]);
sbi              1907 fs/f2fs/f2fs.h static inline s64 get_pages(struct f2fs_sb_info *sbi, int count_type)
sbi              1909 fs/f2fs/f2fs.h 	return atomic_read(&sbi->nr_pages[count_type]);
sbi              1917 fs/f2fs/f2fs.h static inline int get_blocktype_secs(struct f2fs_sb_info *sbi, int block_type)
sbi              1919 fs/f2fs/f2fs.h 	unsigned int pages_per_sec = sbi->segs_per_sec * sbi->blocks_per_seg;
sbi              1920 fs/f2fs/f2fs.h 	unsigned int segs = (get_pages(sbi, block_type) + pages_per_sec - 1) >>
sbi              1921 fs/f2fs/f2fs.h 						sbi->log_blocks_per_seg;
sbi              1923 fs/f2fs/f2fs.h 	return segs / sbi->segs_per_sec;
sbi              1926 fs/f2fs/f2fs.h static inline block_t valid_user_blocks(struct f2fs_sb_info *sbi)
sbi              1928 fs/f2fs/f2fs.h 	return sbi->total_valid_block_count;
sbi              1931 fs/f2fs/f2fs.h static inline block_t discard_blocks(struct f2fs_sb_info *sbi)
sbi              1933 fs/f2fs/f2fs.h 	return sbi->discard_blks;
sbi              1936 fs/f2fs/f2fs.h static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag)
sbi              1938 fs/f2fs/f2fs.h 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1949 fs/f2fs/f2fs.h static inline block_t __cp_payload(struct f2fs_sb_info *sbi)
sbi              1951 fs/f2fs/f2fs.h 	return le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_payload);
sbi              1954 fs/f2fs/f2fs.h static inline void *__bitmap_ptr(struct f2fs_sb_info *sbi, int flag)
sbi              1956 fs/f2fs/f2fs.h 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              1959 fs/f2fs/f2fs.h 	if (is_set_ckpt_flags(sbi, CP_LARGE_NAT_BITMAP_FLAG)) {
sbi              1969 fs/f2fs/f2fs.h 	if (__cp_payload(sbi) > 0) {
sbi              1981 fs/f2fs/f2fs.h static inline block_t __start_cp_addr(struct f2fs_sb_info *sbi)
sbi              1983 fs/f2fs/f2fs.h 	block_t start_addr = le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr);
sbi              1985 fs/f2fs/f2fs.h 	if (sbi->cur_cp_pack == 2)
sbi              1986 fs/f2fs/f2fs.h 		start_addr += sbi->blocks_per_seg;
sbi              1990 fs/f2fs/f2fs.h static inline block_t __start_cp_next_addr(struct f2fs_sb_info *sbi)
sbi              1992 fs/f2fs/f2fs.h 	block_t start_addr = le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr);
sbi              1994 fs/f2fs/f2fs.h 	if (sbi->cur_cp_pack == 1)
sbi              1995 fs/f2fs/f2fs.h 		start_addr += sbi->blocks_per_seg;
sbi              1999 fs/f2fs/f2fs.h static inline void __set_cp_next_pack(struct f2fs_sb_info *sbi)
sbi              2001 fs/f2fs/f2fs.h 	sbi->cur_cp_pack = (sbi->cur_cp_pack == 1) ? 2 : 1;
sbi              2004 fs/f2fs/f2fs.h static inline block_t __start_sum_addr(struct f2fs_sb_info *sbi)
sbi              2006 fs/f2fs/f2fs.h 	return le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_start_sum);
sbi              2009 fs/f2fs/f2fs.h static inline int inc_valid_node_count(struct f2fs_sb_info *sbi,
sbi              2028 fs/f2fs/f2fs.h 	if (time_to_inject(sbi, FAULT_BLOCK)) {
sbi              2033 fs/f2fs/f2fs.h 	spin_lock(&sbi->stat_lock);
sbi              2035 fs/f2fs/f2fs.h 	valid_block_count = sbi->total_valid_block_count +
sbi              2036 fs/f2fs/f2fs.h 					sbi->current_reserved_blocks + 1;
sbi              2038 fs/f2fs/f2fs.h 	if (!__allow_reserved_blocks(sbi, inode, false))
sbi              2039 fs/f2fs/f2fs.h 		valid_block_count += F2FS_OPTION(sbi).root_reserved_blocks;
sbi              2040 fs/f2fs/f2fs.h 	user_block_count = sbi->user_block_count;
sbi              2041 fs/f2fs/f2fs.h 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi              2042 fs/f2fs/f2fs.h 		user_block_count -= sbi->unusable_block_count;
sbi              2045 fs/f2fs/f2fs.h 		spin_unlock(&sbi->stat_lock);
sbi              2049 fs/f2fs/f2fs.h 	valid_node_count = sbi->total_valid_node_count + 1;
sbi              2050 fs/f2fs/f2fs.h 	if (unlikely(valid_node_count > sbi->total_node_count)) {
sbi              2051 fs/f2fs/f2fs.h 		spin_unlock(&sbi->stat_lock);
sbi              2055 fs/f2fs/f2fs.h 	sbi->total_valid_node_count++;
sbi              2056 fs/f2fs/f2fs.h 	sbi->total_valid_block_count++;
sbi              2057 fs/f2fs/f2fs.h 	spin_unlock(&sbi->stat_lock);
sbi              2066 fs/f2fs/f2fs.h 	percpu_counter_inc(&sbi->alloc_valid_block_count);
sbi              2079 fs/f2fs/f2fs.h static inline void dec_valid_node_count(struct f2fs_sb_info *sbi,
sbi              2082 fs/f2fs/f2fs.h 	spin_lock(&sbi->stat_lock);
sbi              2084 fs/f2fs/f2fs.h 	f2fs_bug_on(sbi, !sbi->total_valid_block_count);
sbi              2085 fs/f2fs/f2fs.h 	f2fs_bug_on(sbi, !sbi->total_valid_node_count);
sbi              2087 fs/f2fs/f2fs.h 	sbi->total_valid_node_count--;
sbi              2088 fs/f2fs/f2fs.h 	sbi->total_valid_block_count--;
sbi              2089 fs/f2fs/f2fs.h 	if (sbi->reserved_blocks &&
sbi              2090 fs/f2fs/f2fs.h 		sbi->current_reserved_blocks < sbi->reserved_blocks)
sbi              2091 fs/f2fs/f2fs.h 		sbi->current_reserved_blocks++;
sbi              2093 fs/f2fs/f2fs.h 	spin_unlock(&sbi->stat_lock);
sbi              2099 fs/f2fs/f2fs.h 			f2fs_warn(sbi, "Inconsistent i_blocks, ino:%lu, iblocks:%llu",
sbi              2102 fs/f2fs/f2fs.h 			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              2109 fs/f2fs/f2fs.h static inline unsigned int valid_node_count(struct f2fs_sb_info *sbi)
sbi              2111 fs/f2fs/f2fs.h 	return sbi->total_valid_node_count;
sbi              2114 fs/f2fs/f2fs.h static inline void inc_valid_inode_count(struct f2fs_sb_info *sbi)
sbi              2116 fs/f2fs/f2fs.h 	percpu_counter_inc(&sbi->total_valid_inode_count);
sbi              2119 fs/f2fs/f2fs.h static inline void dec_valid_inode_count(struct f2fs_sb_info *sbi)
sbi              2121 fs/f2fs/f2fs.h 	percpu_counter_dec(&sbi->total_valid_inode_count);
sbi              2124 fs/f2fs/f2fs.h static inline s64 valid_inode_count(struct f2fs_sb_info *sbi)
sbi              2126 fs/f2fs/f2fs.h 	return percpu_counter_sum_positive(&sbi->total_valid_inode_count);
sbi              2215 fs/f2fs/f2fs.h static inline struct bio *f2fs_bio_alloc(struct f2fs_sb_info *sbi,
sbi              2227 fs/f2fs/f2fs.h 	if (time_to_inject(sbi, FAULT_ALLOC_BIO)) {
sbi              2235 fs/f2fs/f2fs.h static inline bool is_idle(struct f2fs_sb_info *sbi, int type)
sbi              2237 fs/f2fs/f2fs.h 	if (sbi->gc_mode == GC_URGENT)
sbi              2240 fs/f2fs/f2fs.h 	if (get_pages(sbi, F2FS_RD_DATA) || get_pages(sbi, F2FS_RD_NODE) ||
sbi              2241 fs/f2fs/f2fs.h 		get_pages(sbi, F2FS_RD_META) || get_pages(sbi, F2FS_WB_DATA) ||
sbi              2242 fs/f2fs/f2fs.h 		get_pages(sbi, F2FS_WB_CP_DATA) ||
sbi              2243 fs/f2fs/f2fs.h 		get_pages(sbi, F2FS_DIO_READ) ||
sbi              2244 fs/f2fs/f2fs.h 		get_pages(sbi, F2FS_DIO_WRITE))
sbi              2247 fs/f2fs/f2fs.h 	if (type != DISCARD_TIME && SM_I(sbi) && SM_I(sbi)->dcc_info &&
sbi              2248 fs/f2fs/f2fs.h 			atomic_read(&SM_I(sbi)->dcc_info->queued_discard))
sbi              2251 fs/f2fs/f2fs.h 	if (SM_I(sbi) && SM_I(sbi)->fcc_info &&
sbi              2252 fs/f2fs/f2fs.h 			atomic_read(&SM_I(sbi)->fcc_info->queued_flush))
sbi              2255 fs/f2fs/f2fs.h 	return f2fs_time_over(sbi, type);
sbi              2728 fs/f2fs/f2fs.h 		struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2730 fs/f2fs/f2fs.h 		spin_lock(&sbi->inode_lock[DIRTY_META]);
sbi              2732 fs/f2fs/f2fs.h 		spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              2755 fs/f2fs/f2fs.h static inline bool f2fs_cp_error(struct f2fs_sb_info *sbi)
sbi              2757 fs/f2fs/f2fs.h 	return is_set_ckpt_flags(sbi, CP_ERROR_FLAG);
sbi              2773 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2775 fs/f2fs/f2fs.h 	if (!test_opt(sbi, EXTENT_CACHE) ||
sbi              2783 fs/f2fs/f2fs.h 	if (list_empty(&sbi->s_list))
sbi              2789 fs/f2fs/f2fs.h static inline void *f2fs_kmalloc(struct f2fs_sb_info *sbi,
sbi              2794 fs/f2fs/f2fs.h 	if (time_to_inject(sbi, FAULT_KMALLOC)) {
sbi              2806 fs/f2fs/f2fs.h static inline void *f2fs_kzalloc(struct f2fs_sb_info *sbi,
sbi              2809 fs/f2fs/f2fs.h 	return f2fs_kmalloc(sbi, size, flags | __GFP_ZERO);
sbi              2812 fs/f2fs/f2fs.h static inline void *f2fs_kvmalloc(struct f2fs_sb_info *sbi,
sbi              2815 fs/f2fs/f2fs.h 	if (time_to_inject(sbi, FAULT_KVMALLOC)) {
sbi              2823 fs/f2fs/f2fs.h static inline void *f2fs_kvzalloc(struct f2fs_sb_info *sbi,
sbi              2826 fs/f2fs/f2fs.h 	return f2fs_kvmalloc(sbi, size, flags | __GFP_ZERO);
sbi              2853 fs/f2fs/f2fs.h static inline void f2fs_reset_iostat(struct f2fs_sb_info *sbi)
sbi              2857 fs/f2fs/f2fs.h 	spin_lock(&sbi->iostat_lock);
sbi              2859 fs/f2fs/f2fs.h 		sbi->write_iostat[i] = 0;
sbi              2860 fs/f2fs/f2fs.h 	spin_unlock(&sbi->iostat_lock);
sbi              2863 fs/f2fs/f2fs.h static inline void f2fs_update_iostat(struct f2fs_sb_info *sbi,
sbi              2866 fs/f2fs/f2fs.h 	if (!sbi->iostat_enable)
sbi              2868 fs/f2fs/f2fs.h 	spin_lock(&sbi->iostat_lock);
sbi              2869 fs/f2fs/f2fs.h 	sbi->write_iostat[type] += io_bytes;
sbi              2872 fs/f2fs/f2fs.h 		sbi->write_iostat[APP_BUFFERED_IO] =
sbi              2873 fs/f2fs/f2fs.h 			sbi->write_iostat[APP_WRITE_IO] -
sbi              2874 fs/f2fs/f2fs.h 			sbi->write_iostat[APP_DIRECT_IO];
sbi              2875 fs/f2fs/f2fs.h 	spin_unlock(&sbi->iostat_lock);
sbi              2878 fs/f2fs/f2fs.h #define __is_large_section(sbi)		((sbi)->segs_per_sec > 1)
sbi              2882 fs/f2fs/f2fs.h bool f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi,
sbi              2884 fs/f2fs/f2fs.h static inline void verify_blkaddr(struct f2fs_sb_info *sbi,
sbi              2887 fs/f2fs/f2fs.h 	if (!f2fs_is_valid_blkaddr(sbi, blkaddr, type)) {
sbi              2888 fs/f2fs/f2fs.h 		f2fs_err(sbi, "invalid blkaddr: %u, type: %d, run fsck to fix.",
sbi              2890 fs/f2fs/f2fs.h 		f2fs_bug_on(sbi, 1);
sbi              2944 fs/f2fs/f2fs.h bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page);
sbi              2945 fs/f2fs/f2fs.h void f2fs_inode_chksum_set(struct f2fs_sb_info *sbi, struct page *page);
sbi              2948 fs/f2fs/f2fs.h int f2fs_try_to_free_nats(struct f2fs_sb_info *sbi, int nr_shrink);
sbi              2958 fs/f2fs/f2fs.h int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name,
sbi              3020 fs/f2fs/f2fs.h int f2fs_enable_quota_files(struct f2fs_sb_info *sbi, bool rdonly);
sbi              3023 fs/f2fs/f2fs.h int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover);
sbi              3025 fs/f2fs/f2fs.h int f2fs_sanity_check_ckpt(struct f2fs_sb_info *sbi);
sbi              3039 fs/f2fs/f2fs.h int f2fs_check_nid_range(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3040 fs/f2fs/f2fs.h bool f2fs_available_free_memory(struct f2fs_sb_info *sbi, int type);
sbi              3041 fs/f2fs/f2fs.h bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, struct page *page);
sbi              3042 fs/f2fs/f2fs.h void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi);
sbi              3043 fs/f2fs/f2fs.h void f2fs_del_fsync_node_entry(struct f2fs_sb_info *sbi, struct page *page);
sbi              3044 fs/f2fs/f2fs.h void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi);
sbi              3045 fs/f2fs/f2fs.h int f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3046 fs/f2fs/f2fs.h bool f2fs_is_checkpointed_node(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3047 fs/f2fs/f2fs.h bool f2fs_need_inode_block_update(struct f2fs_sb_info *sbi, nid_t ino);
sbi              3048 fs/f2fs/f2fs.h int f2fs_get_node_info(struct f2fs_sb_info *sbi, nid_t nid,
sbi              3054 fs/f2fs/f2fs.h int f2fs_wait_on_node_pages_writeback(struct f2fs_sb_info *sbi,
sbi              3059 fs/f2fs/f2fs.h void f2fs_ra_node_page(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3060 fs/f2fs/f2fs.h struct page *f2fs_get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid);
sbi              3063 fs/f2fs/f2fs.h int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
sbi              3066 fs/f2fs/f2fs.h int f2fs_sync_node_pages(struct f2fs_sb_info *sbi,
sbi              3069 fs/f2fs/f2fs.h int f2fs_build_free_nids(struct f2fs_sb_info *sbi, bool sync, bool mount);
sbi              3070 fs/f2fs/f2fs.h bool f2fs_alloc_nid(struct f2fs_sb_info *sbi, nid_t *nid);
sbi              3071 fs/f2fs/f2fs.h void f2fs_alloc_nid_done(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3072 fs/f2fs/f2fs.h void f2fs_alloc_nid_failed(struct f2fs_sb_info *sbi, nid_t nid);
sbi              3073 fs/f2fs/f2fs.h int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink);
sbi              3076 fs/f2fs/f2fs.h int f2fs_recover_inode_page(struct f2fs_sb_info *sbi, struct page *page);
sbi              3077 fs/f2fs/f2fs.h int f2fs_restore_node_summary(struct f2fs_sb_info *sbi,
sbi              3079 fs/f2fs/f2fs.h int f2fs_flush_nat_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc);
sbi              3080 fs/f2fs/f2fs.h int f2fs_build_node_manager(struct f2fs_sb_info *sbi);
sbi              3081 fs/f2fs/f2fs.h void f2fs_destroy_node_manager(struct f2fs_sb_info *sbi);
sbi              3088 fs/f2fs/f2fs.h bool f2fs_need_SSR(struct f2fs_sb_info *sbi);
sbi              3090 fs/f2fs/f2fs.h void f2fs_drop_inmem_pages_all(struct f2fs_sb_info *sbi, bool gc_failure);
sbi              3094 fs/f2fs/f2fs.h void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need);
sbi              3095 fs/f2fs/f2fs.h void f2fs_balance_fs_bg(struct f2fs_sb_info *sbi);
sbi              3096 fs/f2fs/f2fs.h int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino);
sbi              3097 fs/f2fs/f2fs.h int f2fs_create_flush_cmd_control(struct f2fs_sb_info *sbi);
sbi              3098 fs/f2fs/f2fs.h int f2fs_flush_device_cache(struct f2fs_sb_info *sbi);
sbi              3099 fs/f2fs/f2fs.h void f2fs_destroy_flush_cmd_control(struct f2fs_sb_info *sbi, bool free);
sbi              3100 fs/f2fs/f2fs.h void f2fs_invalidate_blocks(struct f2fs_sb_info *sbi, block_t addr);
sbi              3101 fs/f2fs/f2fs.h bool f2fs_is_checkpointed_data(struct f2fs_sb_info *sbi, block_t blkaddr);
sbi              3102 fs/f2fs/f2fs.h void f2fs_drop_discard_cmd(struct f2fs_sb_info *sbi);
sbi              3103 fs/f2fs/f2fs.h void f2fs_stop_discard_thread(struct f2fs_sb_info *sbi);
sbi              3104 fs/f2fs/f2fs.h bool f2fs_issue_discard_timeout(struct f2fs_sb_info *sbi);
sbi              3105 fs/f2fs/f2fs.h void f2fs_clear_prefree_segments(struct f2fs_sb_info *sbi,
sbi              3107 fs/f2fs/f2fs.h void f2fs_dirty_to_prefree(struct f2fs_sb_info *sbi);
sbi              3108 fs/f2fs/f2fs.h block_t f2fs_get_unusable_blocks(struct f2fs_sb_info *sbi);
sbi              3109 fs/f2fs/f2fs.h int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable);
sbi              3110 fs/f2fs/f2fs.h void f2fs_release_discard_addrs(struct f2fs_sb_info *sbi);
sbi              3111 fs/f2fs/f2fs.h int f2fs_npages_for_summary_flush(struct f2fs_sb_info *sbi, bool for_ra);
sbi              3112 fs/f2fs/f2fs.h void allocate_segment_for_resize(struct f2fs_sb_info *sbi, int type,
sbi              3114 fs/f2fs/f2fs.h void f2fs_allocate_new_segments(struct f2fs_sb_info *sbi);
sbi              3115 fs/f2fs/f2fs.h int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range);
sbi              3116 fs/f2fs/f2fs.h bool f2fs_exist_trim_candidates(struct f2fs_sb_info *sbi,
sbi              3118 fs/f2fs/f2fs.h struct page *f2fs_get_sum_page(struct f2fs_sb_info *sbi, unsigned int segno);
sbi              3119 fs/f2fs/f2fs.h void f2fs_update_meta_page(struct f2fs_sb_info *sbi, void *src,
sbi              3121 fs/f2fs/f2fs.h void f2fs_do_write_meta_page(struct f2fs_sb_info *sbi, struct page *page,
sbi              3127 fs/f2fs/f2fs.h void f2fs_do_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
sbi              3130 fs/f2fs/f2fs.h void f2fs_replace_block(struct f2fs_sb_info *sbi, struct dnode_of_data *dn,
sbi              3134 fs/f2fs/f2fs.h void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page,
sbi              3143 fs/f2fs/f2fs.h void f2fs_write_data_summaries(struct f2fs_sb_info *sbi, block_t start_blk);
sbi              3144 fs/f2fs/f2fs.h void f2fs_write_node_summaries(struct f2fs_sb_info *sbi, block_t start_blk);
sbi              3147 fs/f2fs/f2fs.h void f2fs_flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc);
sbi              3148 fs/f2fs/f2fs.h int f2fs_build_segment_manager(struct f2fs_sb_info *sbi);
sbi              3149 fs/f2fs/f2fs.h void f2fs_destroy_segment_manager(struct f2fs_sb_info *sbi);
sbi              3153 fs/f2fs/f2fs.h enum rw_hint f2fs_io_type_to_rw_hint(struct f2fs_sb_info *sbi,
sbi              3159 fs/f2fs/f2fs.h void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io);
sbi              3160 fs/f2fs/f2fs.h struct page *f2fs_grab_meta_page(struct f2fs_sb_info *sbi, pgoff_t index);
sbi              3161 fs/f2fs/f2fs.h struct page *f2fs_get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index);
sbi              3162 fs/f2fs/f2fs.h struct page *f2fs_get_meta_page_nofail(struct f2fs_sb_info *sbi, pgoff_t index);
sbi              3163 fs/f2fs/f2fs.h struct page *f2fs_get_tmp_page(struct f2fs_sb_info *sbi, pgoff_t index);
sbi              3164 fs/f2fs/f2fs.h bool f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi,
sbi              3166 fs/f2fs/f2fs.h int f2fs_ra_meta_pages(struct f2fs_sb_info *sbi, block_t start, int nrpages,
sbi              3168 fs/f2fs/f2fs.h void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index);
sbi              3169 fs/f2fs/f2fs.h long f2fs_sync_meta_pages(struct f2fs_sb_info *sbi, enum page_type type,
sbi              3171 fs/f2fs/f2fs.h void f2fs_add_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type);
sbi              3172 fs/f2fs/f2fs.h void f2fs_remove_ino_entry(struct f2fs_sb_info *sbi, nid_t ino, int type);
sbi              3173 fs/f2fs/f2fs.h void f2fs_release_ino_entry(struct f2fs_sb_info *sbi, bool all);
sbi              3174 fs/f2fs/f2fs.h bool f2fs_exist_written_data(struct f2fs_sb_info *sbi, nid_t ino, int mode);
sbi              3175 fs/f2fs/f2fs.h void f2fs_set_dirty_device(struct f2fs_sb_info *sbi, nid_t ino,
sbi              3177 fs/f2fs/f2fs.h bool f2fs_is_dirty_device(struct f2fs_sb_info *sbi, nid_t ino,
sbi              3179 fs/f2fs/f2fs.h int f2fs_sync_inode_meta(struct f2fs_sb_info *sbi);
sbi              3180 fs/f2fs/f2fs.h int f2fs_acquire_orphan_inode(struct f2fs_sb_info *sbi);
sbi              3181 fs/f2fs/f2fs.h void f2fs_release_orphan_inode(struct f2fs_sb_info *sbi);
sbi              3183 fs/f2fs/f2fs.h void f2fs_remove_orphan_inode(struct f2fs_sb_info *sbi, nid_t ino);
sbi              3184 fs/f2fs/f2fs.h int f2fs_recover_orphan_inodes(struct f2fs_sb_info *sbi);
sbi              3185 fs/f2fs/f2fs.h int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi);
sbi              3188 fs/f2fs/f2fs.h int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type);
sbi              3189 fs/f2fs/f2fs.h void f2fs_wait_on_all_pages(struct f2fs_sb_info *sbi, int type);
sbi              3190 fs/f2fs/f2fs.h int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc);
sbi              3191 fs/f2fs/f2fs.h void f2fs_init_ino_entry_info(struct f2fs_sb_info *sbi);
sbi              3200 fs/f2fs/f2fs.h void f2fs_submit_merged_write(struct f2fs_sb_info *sbi, enum page_type type);
sbi              3201 fs/f2fs/f2fs.h void f2fs_submit_merged_write_cond(struct f2fs_sb_info *sbi,
sbi              3204 fs/f2fs/f2fs.h void f2fs_flush_merged_writes(struct f2fs_sb_info *sbi);
sbi              3208 fs/f2fs/f2fs.h struct block_device *f2fs_target_device(struct f2fs_sb_info *sbi,
sbi              3210 fs/f2fs/f2fs.h int f2fs_target_device_index(struct f2fs_sb_info *sbi, block_t blkaddr);
sbi              3226 fs/f2fs/f2fs.h void __do_map_lock(struct f2fs_sb_info *sbi, int flag, bool lock);
sbi              3246 fs/f2fs/f2fs.h int f2fs_start_gc_thread(struct f2fs_sb_info *sbi);
sbi              3247 fs/f2fs/f2fs.h void f2fs_stop_gc_thread(struct f2fs_sb_info *sbi);
sbi              3249 fs/f2fs/f2fs.h int f2fs_gc(struct f2fs_sb_info *sbi, bool sync, bool background,
sbi              3251 fs/f2fs/f2fs.h void f2fs_build_gc_manager(struct f2fs_sb_info *sbi);
sbi              3252 fs/f2fs/f2fs.h int f2fs_resize_fs(struct f2fs_sb_info *sbi, __u64 block_count);
sbi              3257 fs/f2fs/f2fs.h int f2fs_recover_fsync_data(struct f2fs_sb_info *sbi, bool check_only);
sbi              3258 fs/f2fs/f2fs.h bool f2fs_space_for_roll_forward(struct f2fs_sb_info *sbi);
sbi              3266 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi;
sbi              3311 fs/f2fs/f2fs.h static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi)
sbi              3313 fs/f2fs/f2fs.h 	return (struct f2fs_stat_info *)sbi->stat_info;
sbi              3319 fs/f2fs/f2fs.h #define stat_inc_bggc_count(sbi)	((sbi)->bg_gc++)
sbi              3320 fs/f2fs/f2fs.h #define stat_io_skip_bggc_count(sbi)	((sbi)->io_skip_bggc++)
sbi              3321 fs/f2fs/f2fs.h #define stat_other_skip_bggc_count(sbi)	((sbi)->other_skip_bggc++)
sbi              3322 fs/f2fs/f2fs.h #define stat_inc_dirty_inode(sbi, type)	((sbi)->ndirty_inode[type]++)
sbi              3323 fs/f2fs/f2fs.h #define stat_dec_dirty_inode(sbi, type)	((sbi)->ndirty_inode[type]--)
sbi              3324 fs/f2fs/f2fs.h #define stat_inc_total_hit(sbi)		(atomic64_inc(&(sbi)->total_hit_ext))
sbi              3325 fs/f2fs/f2fs.h #define stat_inc_rbtree_node_hit(sbi)	(atomic64_inc(&(sbi)->read_hit_rbtree))
sbi              3326 fs/f2fs/f2fs.h #define stat_inc_largest_node_hit(sbi)	(atomic64_inc(&(sbi)->read_hit_largest))
sbi              3327 fs/f2fs/f2fs.h #define stat_inc_cached_node_hit(sbi)	(atomic64_inc(&(sbi)->read_hit_cached))
sbi              3358 fs/f2fs/f2fs.h #define stat_inc_meta_count(sbi, blkaddr)				\
sbi              3360 fs/f2fs/f2fs.h 		if (blkaddr < SIT_I(sbi)->sit_base_addr)		\
sbi              3361 fs/f2fs/f2fs.h 			atomic_inc(&(sbi)->meta_count[META_CP]);	\
sbi              3362 fs/f2fs/f2fs.h 		else if (blkaddr < NM_I(sbi)->nat_blkaddr)		\
sbi              3363 fs/f2fs/f2fs.h 			atomic_inc(&(sbi)->meta_count[META_SIT]);	\
sbi              3364 fs/f2fs/f2fs.h 		else if (blkaddr < SM_I(sbi)->ssa_blkaddr)		\
sbi              3365 fs/f2fs/f2fs.h 			atomic_inc(&(sbi)->meta_count[META_NAT]);	\
sbi              3366 fs/f2fs/f2fs.h 		else if (blkaddr < SM_I(sbi)->main_blkaddr)		\
sbi              3367 fs/f2fs/f2fs.h 			atomic_inc(&(sbi)->meta_count[META_SSA]);	\
sbi              3369 fs/f2fs/f2fs.h #define stat_inc_seg_type(sbi, curseg)					\
sbi              3370 fs/f2fs/f2fs.h 		((sbi)->segment_count[(curseg)->alloc_type]++)
sbi              3371 fs/f2fs/f2fs.h #define stat_inc_block_count(sbi, curseg)				\
sbi              3372 fs/f2fs/f2fs.h 		((sbi)->block_count[(curseg)->alloc_type]++)
sbi              3373 fs/f2fs/f2fs.h #define stat_inc_inplace_blocks(sbi)					\
sbi              3374 fs/f2fs/f2fs.h 		(atomic_inc(&(sbi)->inplace_count))
sbi              3397 fs/f2fs/f2fs.h #define stat_inc_seg_count(sbi, type, gc_type)				\
sbi              3399 fs/f2fs/f2fs.h 		struct f2fs_stat_info *si = F2FS_STAT(sbi);		\
sbi              3413 fs/f2fs/f2fs.h #define stat_inc_data_blk_count(sbi, blks, gc_type)			\
sbi              3415 fs/f2fs/f2fs.h 		struct f2fs_stat_info *si = F2FS_STAT(sbi);		\
sbi              3421 fs/f2fs/f2fs.h #define stat_inc_node_blk_count(sbi, blks, gc_type)			\
sbi              3423 fs/f2fs/f2fs.h 		struct f2fs_stat_info *si = F2FS_STAT(sbi);		\
sbi              3429 fs/f2fs/f2fs.h int f2fs_build_stats(struct f2fs_sb_info *sbi);
sbi              3430 fs/f2fs/f2fs.h void f2fs_destroy_stats(struct f2fs_sb_info *sbi);
sbi              3438 fs/f2fs/f2fs.h #define stat_io_skip_bggc_count(sbi)			do { } while (0)
sbi              3439 fs/f2fs/f2fs.h #define stat_other_skip_bggc_count(sbi)			do { } while (0)
sbi              3440 fs/f2fs/f2fs.h #define stat_inc_dirty_inode(sbi, type)			do { } while (0)
sbi              3441 fs/f2fs/f2fs.h #define stat_dec_dirty_inode(sbi, type)			do { } while (0)
sbi              3444 fs/f2fs/f2fs.h #define stat_inc_largest_node_hit(sbi)			do { } while (0)
sbi              3445 fs/f2fs/f2fs.h #define stat_inc_cached_node_hit(sbi)			do { } while (0)
sbi              3458 fs/f2fs/f2fs.h #define stat_inc_meta_count(sbi, blkaddr)		do { } while (0)
sbi              3459 fs/f2fs/f2fs.h #define stat_inc_seg_type(sbi, curseg)			do { } while (0)
sbi              3460 fs/f2fs/f2fs.h #define stat_inc_block_count(sbi, curseg)		do { } while (0)
sbi              3461 fs/f2fs/f2fs.h #define stat_inc_inplace_blocks(sbi)			do { } while (0)
sbi              3462 fs/f2fs/f2fs.h #define stat_inc_seg_count(sbi, type, gc_type)		do { } while (0)
sbi              3464 fs/f2fs/f2fs.h #define stat_inc_data_blk_count(sbi, blks, gc_type)	do { } while (0)
sbi              3465 fs/f2fs/f2fs.h #define stat_inc_node_blk_count(sbi, blks, gc_type)	do { } while (0)
sbi              3467 fs/f2fs/f2fs.h static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; }
sbi              3468 fs/f2fs/f2fs.h static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { }
sbi              3525 fs/f2fs/f2fs.h void f2fs_join_shrinker(struct f2fs_sb_info *sbi);
sbi              3526 fs/f2fs/f2fs.h void f2fs_leave_shrinker(struct f2fs_sb_info *sbi);
sbi              3533 fs/f2fs/f2fs.h struct rb_node **f2fs_lookup_rb_tree_for_insert(struct f2fs_sb_info *sbi,
sbi              3542 fs/f2fs/f2fs.h bool f2fs_check_rb_tree_consistence(struct f2fs_sb_info *sbi,
sbi              3544 fs/f2fs/f2fs.h unsigned int f2fs_shrink_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink);
sbi              3554 fs/f2fs/f2fs.h void f2fs_init_extent_cache_info(struct f2fs_sb_info *sbi);
sbi              3563 fs/f2fs/f2fs.h int f2fs_register_sysfs(struct f2fs_sb_info *sbi);
sbi              3564 fs/f2fs/f2fs.h void f2fs_unregister_sysfs(struct f2fs_sb_info *sbi);
sbi              3595 fs/f2fs/f2fs.h static inline int f2fs_sb_has_##name(struct f2fs_sb_info *sbi) \
sbi              3597 fs/f2fs/f2fs.h 	return F2FS_HAS_FEATURE(sbi, F2FS_FEATURE_##flagname); \
sbi              3614 fs/f2fs/f2fs.h static inline bool f2fs_blkz_is_seq(struct f2fs_sb_info *sbi, int devi,
sbi              3617 fs/f2fs/f2fs.h 	unsigned int zno = blkaddr >> sbi->log_blocks_per_blkz;
sbi              3623 fs/f2fs/f2fs.h static inline bool f2fs_hw_should_discard(struct f2fs_sb_info *sbi)
sbi              3625 fs/f2fs/f2fs.h 	return f2fs_sb_has_blkzoned(sbi);
sbi              3634 fs/f2fs/f2fs.h static inline bool f2fs_hw_support_discard(struct f2fs_sb_info *sbi)
sbi              3638 fs/f2fs/f2fs.h 	if (!f2fs_is_multi_device(sbi))
sbi              3639 fs/f2fs/f2fs.h 		return f2fs_bdev_support_discard(sbi->sb->s_bdev);
sbi              3641 fs/f2fs/f2fs.h 	for (i = 0; i < sbi->s_ndevs; i++)
sbi              3647 fs/f2fs/f2fs.h static inline bool f2fs_realtime_discard_enable(struct f2fs_sb_info *sbi)
sbi              3649 fs/f2fs/f2fs.h 	return (test_opt(sbi, DISCARD) && f2fs_hw_support_discard(sbi)) ||
sbi              3650 fs/f2fs/f2fs.h 					f2fs_hw_should_discard(sbi);
sbi              3653 fs/f2fs/f2fs.h static inline bool f2fs_hw_is_readonly(struct f2fs_sb_info *sbi)
sbi              3657 fs/f2fs/f2fs.h 	if (!f2fs_is_multi_device(sbi))
sbi              3658 fs/f2fs/f2fs.h 		return bdev_read_only(sbi->sb->s_bdev);
sbi              3660 fs/f2fs/f2fs.h 	for (i = 0; i < sbi->s_ndevs; i++)
sbi              3667 fs/f2fs/f2fs.h static inline void set_opt_mode(struct f2fs_sb_info *sbi, unsigned int mt)
sbi              3669 fs/f2fs/f2fs.h 	clear_opt(sbi, ADAPTIVE);
sbi              3670 fs/f2fs/f2fs.h 	clear_opt(sbi, LFS);
sbi              3674 fs/f2fs/f2fs.h 		set_opt(sbi, ADAPTIVE);
sbi              3677 fs/f2fs/f2fs.h 		set_opt(sbi, LFS);
sbi              3707 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3710 fs/f2fs/f2fs.h 	return (test_opt(sbi, LFS) && (rw == WRITE) &&
sbi              3717 fs/f2fs/f2fs.h 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3722 fs/f2fs/f2fs.h 	if (f2fs_is_multi_device(sbi))
sbi              3728 fs/f2fs/f2fs.h 	if (f2fs_sb_has_blkzoned(sbi))
sbi              3730 fs/f2fs/f2fs.h 	if (test_opt(sbi, LFS) && (rw == WRITE)) {
sbi              3733 fs/f2fs/f2fs.h 		if (F2FS_IO_ALIGNED(sbi))
sbi              3744 fs/f2fs/f2fs.h extern void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate,
sbi              3747 fs/f2fs/f2fs.h #define f2fs_build_fault_attr(sbi, rate, type)		do { } while (0)
sbi              3750 fs/f2fs/f2fs.h static inline bool is_journalled_quota(struct f2fs_sb_info *sbi)
sbi              3753 fs/f2fs/f2fs.h 	if (f2fs_sb_has_quota_ino(sbi))
sbi              3755 fs/f2fs/f2fs.h 	if (F2FS_OPTION(sbi).s_qf_names[USRQUOTA] ||
sbi              3756 fs/f2fs/f2fs.h 		F2FS_OPTION(sbi).s_qf_names[GRPQUOTA] ||
sbi              3757 fs/f2fs/f2fs.h 		F2FS_OPTION(sbi).s_qf_names[PRJQUOTA])
sbi                52 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi                56 fs/f2fs/file.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi                61 fs/f2fs/file.c 	if (!f2fs_is_checkpoint_ready(sbi)) {
sbi                67 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi                71 fs/f2fs/file.c 	f2fs_bug_on(sbi, f2fs_has_inline_data(inode));
sbi                85 fs/f2fs/file.c 	__do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, true);
sbi                89 fs/f2fs/file.c 	__do_map_lock(sbi, F2FS_GET_BLOCK_PRE_AIO, false);
sbi               119 fs/f2fs/file.c 	f2fs_update_iostat(sbi, APP_MAPPED_IO, F2FS_BLKSIZE);
sbi               120 fs/f2fs/file.c 	f2fs_update_time(sbi, REQ_TIME);
sbi               154 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               161 fs/f2fs/file.c 	else if (is_sbi_flag_set(sbi, SBI_NEED_CP))
sbi               165 fs/f2fs/file.c 	else if (!f2fs_space_for_roll_forward(sbi))
sbi               167 fs/f2fs/file.c 	else if (!f2fs_is_checkpointed_node(sbi, F2FS_I(inode)->i_pino))
sbi               169 fs/f2fs/file.c 	else if (test_opt(sbi, FASTBOOT))
sbi               171 fs/f2fs/file.c 	else if (F2FS_OPTION(sbi).active_logs == 2)
sbi               173 fs/f2fs/file.c 	else if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_STRICT &&
sbi               174 fs/f2fs/file.c 		f2fs_need_dentry_mark(sbi, inode->i_ino) &&
sbi               175 fs/f2fs/file.c 		f2fs_exist_written_data(sbi, F2FS_I(inode)->i_pino,
sbi               182 fs/f2fs/file.c static bool need_inode_page_update(struct f2fs_sb_info *sbi, nid_t ino)
sbi               184 fs/f2fs/file.c 	struct page *i = find_get_page(NODE_MAPPING(sbi), ino);
sbi               187 fs/f2fs/file.c 	if ((i && PageDirty(i)) || f2fs_need_inode_block_update(sbi, ino))
sbi               211 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               223 fs/f2fs/file.c 				is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi               232 fs/f2fs/file.c 	if (datasync || get_dirty_pages(inode) <= SM_I(sbi)->min_fsync_blocks)
sbi               252 fs/f2fs/file.c 			!f2fs_exist_written_data(sbi, ino, APPEND_INO)) {
sbi               255 fs/f2fs/file.c 		if (need_inode_page_update(sbi, ino))
sbi               259 fs/f2fs/file.c 				f2fs_exist_written_data(sbi, ino, UPDATE_INO))
sbi               286 fs/f2fs/file.c 	atomic_inc(&sbi->wb_sync_req[NODE]);
sbi               287 fs/f2fs/file.c 	ret = f2fs_fsync_node_pages(sbi, inode, &wbc, atomic, &seq_id);
sbi               288 fs/f2fs/file.c 	atomic_dec(&sbi->wb_sync_req[NODE]);
sbi               293 fs/f2fs/file.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi               298 fs/f2fs/file.c 	if (f2fs_need_inode_block_update(sbi, ino)) {
sbi               313 fs/f2fs/file.c 		ret = f2fs_wait_on_node_pages_writeback(sbi, seq_id);
sbi               319 fs/f2fs/file.c 	f2fs_remove_ino_entry(sbi, ino, APPEND_INO);
sbi               322 fs/f2fs/file.c 	if (!atomic && F2FS_OPTION(sbi).fsync_mode != FSYNC_MODE_NOBARRIER)
sbi               323 fs/f2fs/file.c 		ret = f2fs_issue_flush(sbi, inode->i_ino);
sbi               325 fs/f2fs/file.c 		f2fs_remove_ino_entry(sbi, ino, UPDATE_INO);
sbi               327 fs/f2fs/file.c 		f2fs_remove_ino_entry(sbi, ino, FLUSH_INO);
sbi               329 fs/f2fs/file.c 	f2fs_update_time(sbi, REQ_TIME);
sbi               362 fs/f2fs/file.c static bool __found_offset(struct f2fs_sb_info *sbi, block_t blkaddr,
sbi               517 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi               539 fs/f2fs/file.c 			!f2fs_is_valid_blkaddr(sbi, blkaddr,
sbi               543 fs/f2fs/file.c 		f2fs_invalidate_blocks(sbi, blkaddr);
sbi               558 fs/f2fs/file.c 		dec_valid_block_count(sbi, dn->inode, nr_free);
sbi               562 fs/f2fs/file.c 	f2fs_update_time(sbi, REQ_TIME);
sbi               608 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               619 fs/f2fs/file.c 	if (free_from >= sbi->max_file_blocks)
sbi               623 fs/f2fs/file.c 		f2fs_lock_op(sbi);
sbi               625 fs/f2fs/file.c 	ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi               649 fs/f2fs/file.c 	f2fs_bug_on(sbi, count < 0);
sbi               661 fs/f2fs/file.c 		f2fs_unlock_op(sbi);
sbi               890 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               896 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi               898 fs/f2fs/file.c 	f2fs_lock_op(sbi);
sbi               900 fs/f2fs/file.c 	f2fs_unlock_op(sbi);
sbi               981 fs/f2fs/file.c 			struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               983 fs/f2fs/file.c 			f2fs_balance_fs(sbi, true);
sbi               994 fs/f2fs/file.c 			f2fs_lock_op(sbi);
sbi               996 fs/f2fs/file.c 			f2fs_unlock_op(sbi);
sbi              1009 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1035 fs/f2fs/file.c 			!f2fs_is_valid_blkaddr(sbi, *blkaddr,
sbi              1041 fs/f2fs/file.c 		if (!f2fs_is_checkpointed_data(sbi, *blkaddr)) {
sbi              1043 fs/f2fs/file.c 			if (test_opt(sbi, LFS)) {
sbi              1065 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1076 fs/f2fs/file.c 			dec_valid_block_count(sbi, inode, 1);
sbi              1077 fs/f2fs/file.c 			f2fs_invalidate_blocks(sbi, *blkaddr);
sbi              1090 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(src_inode);
sbi              1111 fs/f2fs/file.c 			ret = f2fs_get_node_info(sbi, dn.nid, &ni);
sbi              1130 fs/f2fs/file.c 					f2fs_replace_block(sbi, &dn, dn.data_blkaddr,
sbi              1225 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1231 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi              1237 fs/f2fs/file.c 	f2fs_lock_op(sbi);
sbi              1241 fs/f2fs/file.c 	f2fs_unlock_op(sbi);
sbi              1291 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi              1321 fs/f2fs/file.c 			f2fs_invalidate_blocks(sbi, dn->data_blkaddr);
sbi              1335 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1390 fs/f2fs/file.c 			f2fs_lock_op(sbi);
sbi              1395 fs/f2fs/file.c 				f2fs_unlock_op(sbi);
sbi              1407 fs/f2fs/file.c 			f2fs_unlock_op(sbi);
sbi              1411 fs/f2fs/file.c 			f2fs_balance_fs(sbi, dn.node_changed);
sbi              1442 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1463 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi              1492 fs/f2fs/file.c 		f2fs_lock_op(sbi);
sbi              1497 fs/f2fs/file.c 		f2fs_unlock_op(sbi);
sbi              1516 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1533 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi              1842 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1885 fs/f2fs/file.c 	spin_lock(&sbi->inode_lock[ATOMIC_FILE]);
sbi              1887 fs/f2fs/file.c 		list_add_tail(&fi->inmem_ilist, &sbi->inode_list[ATOMIC_FILE]);
sbi              1888 fs/f2fs/file.c 	sbi->atomic_files++;
sbi              1889 fs/f2fs/file.c 	spin_unlock(&sbi->inode_lock[ATOMIC_FILE]);
sbi              2046 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2047 fs/f2fs/file.c 	struct super_block *sb = sbi->sb;
sbi              2071 fs/f2fs/file.c 			f2fs_stop_checkpoint(sbi, false);
sbi              2072 fs/f2fs/file.c 			set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
sbi              2081 fs/f2fs/file.c 		f2fs_stop_checkpoint(sbi, false);
sbi              2082 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
sbi              2085 fs/f2fs/file.c 		f2fs_stop_checkpoint(sbi, false);
sbi              2086 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
sbi              2089 fs/f2fs/file.c 		f2fs_sync_meta_pages(sbi, META, LONG_MAX, FS_META_IO);
sbi              2090 fs/f2fs/file.c 		f2fs_stop_checkpoint(sbi, false);
sbi              2091 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_IS_SHUTDOWN);
sbi              2094 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              2095 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_CP_DISABLED_QUICK);
sbi              2096 fs/f2fs/file.c 		set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              2105 fs/f2fs/file.c 	f2fs_stop_gc_thread(sbi);
sbi              2106 fs/f2fs/file.c 	f2fs_stop_discard_thread(sbi);
sbi              2108 fs/f2fs/file.c 	f2fs_drop_discard_cmd(sbi);
sbi              2109 fs/f2fs/file.c 	clear_opt(sbi, DISCARD);
sbi              2111 fs/f2fs/file.c 	f2fs_update_time(sbi, REQ_TIME);
sbi              2116 fs/f2fs/file.c 	trace_f2fs_shutdown(sbi, in, ret);
sbi              2189 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2192 fs/f2fs/file.c 	if (!f2fs_sb_has_encrypt(sbi))
sbi              2199 fs/f2fs/file.c 	down_write(&sbi->sb_lock);
sbi              2201 fs/f2fs/file.c 	if (uuid_is_nonzero(sbi->raw_super->encrypt_pw_salt))
sbi              2205 fs/f2fs/file.c 	generate_random_uuid(sbi->raw_super->encrypt_pw_salt);
sbi              2207 fs/f2fs/file.c 	err = f2fs_commit_super(sbi, false);
sbi              2210 fs/f2fs/file.c 		memset(sbi->raw_super->encrypt_pw_salt, 0, 16);
sbi              2214 fs/f2fs/file.c 	if (copy_to_user((__u8 __user *)arg, sbi->raw_super->encrypt_pw_salt,
sbi              2218 fs/f2fs/file.c 	up_write(&sbi->sb_lock);
sbi              2269 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2279 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              2287 fs/f2fs/file.c 		if (!mutex_trylock(&sbi->gc_mutex)) {
sbi              2292 fs/f2fs/file.c 		mutex_lock(&sbi->gc_mutex);
sbi              2295 fs/f2fs/file.c 	ret = f2fs_gc(sbi, sync, true, NULL_SEGNO);
sbi              2304 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2316 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              2320 fs/f2fs/file.c 	if (end < range.start || range.start < MAIN_BLKADDR(sbi) ||
sbi              2321 fs/f2fs/file.c 					end >= MAX_BLKADDR(sbi))
sbi              2330 fs/f2fs/file.c 		if (!mutex_trylock(&sbi->gc_mutex)) {
sbi              2335 fs/f2fs/file.c 		mutex_lock(&sbi->gc_mutex);
sbi              2338 fs/f2fs/file.c 	ret = f2fs_gc(sbi, range.sync, true, GET_SEGNO(sbi, range.start));
sbi              2339 fs/f2fs/file.c 	range.start += BLKS_PER_SEC(sbi);
sbi              2350 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2356 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              2359 fs/f2fs/file.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi              2360 fs/f2fs/file.c 		f2fs_info(sbi, "Skipping Checkpoint. Checkpoints currently disabled.");
sbi              2368 fs/f2fs/file.c 	ret = f2fs_sync_fs(sbi->sb, 1);
sbi              2374 fs/f2fs/file.c static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
sbi              2384 fs/f2fs/file.c 	unsigned int blk_per_seg = sbi->blocks_per_seg;
sbi              2397 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi              2451 fs/f2fs/file.c 	sec_num = DIV_ROUND_UP(total, BLKS_PER_SEC(sbi));
sbi              2458 fs/f2fs/file.c 	if (has_not_enough_free_secs(sbi, 0, sec_num)) {
sbi              2525 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2535 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              2547 fs/f2fs/file.c 					sbi->max_file_blocks))
sbi              2554 fs/f2fs/file.c 	err = f2fs_defragment_range(sbi, filp, &range);
sbi              2557 fs/f2fs/file.c 	f2fs_update_time(sbi, REQ_TIME);
sbi              2573 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(src);
sbi              2646 fs/f2fs/file.c 	f2fs_balance_fs(sbi, true);
sbi              2655 fs/f2fs/file.c 	f2fs_lock_op(sbi);
sbi              2666 fs/f2fs/file.c 	f2fs_unlock_op(sbi);
sbi              2725 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2726 fs/f2fs/file.c 	struct sit_info *sm = SIT_I(sbi);
sbi              2735 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              2738 fs/f2fs/file.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi              2745 fs/f2fs/file.c 	if (!f2fs_is_multi_device(sbi) || sbi->s_ndevs - 1 <= range.dev_num ||
sbi              2746 fs/f2fs/file.c 			__is_large_section(sbi)) {
sbi              2747 fs/f2fs/file.c 		f2fs_warn(sbi, "Can't flush %u in %d for segs_per_sec %u != 1",
sbi              2748 fs/f2fs/file.c 			  range.dev_num, sbi->s_ndevs, sbi->segs_per_sec);
sbi              2757 fs/f2fs/file.c 		dev_start_segno = GET_SEGNO(sbi, FDEV(range.dev_num).start_blk);
sbi              2758 fs/f2fs/file.c 	dev_end_segno = GET_SEGNO(sbi, FDEV(range.dev_num).end_blk);
sbi              2766 fs/f2fs/file.c 		if (!mutex_trylock(&sbi->gc_mutex)) {
sbi              2773 fs/f2fs/file.c 		ret = f2fs_gc(sbi, true, true, start_segno);
sbi              2800 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2801 fs/f2fs/file.c 	struct super_block *sb = sbi->sb;
sbi              2808 fs/f2fs/file.c 			set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2818 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2823 fs/f2fs/file.c 	if (!f2fs_sb_has_project_quota(sbi)) {
sbi              2843 fs/f2fs/file.c 	ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi              2859 fs/f2fs/file.c 	f2fs_lock_op(sbi);
sbi              2868 fs/f2fs/file.c 	f2fs_unlock_op(sbi);
sbi              3008 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3015 fs/f2fs/file.c 	if (fi->i_gc_failures[GC_FAILURE_PIN] > sbi->gc_pin_file_threshold) {
sbi              3016 fs/f2fs/file.c 		f2fs_warn(sbi, "%s: Enable GC = ino %lx after %x GC trials",
sbi              3125 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(file_inode(filp));
sbi              3132 fs/f2fs/file.c 	if (f2fs_readonly(sbi->sb))
sbi              3139 fs/f2fs/file.c 	ret = f2fs_resize_fs(sbi, block_count);
sbi              3171 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3176 fs/f2fs/file.c 	vbuf = f2fs_kzalloc(sbi, MAX_VOLUME_NAME, GFP_KERNEL);
sbi              3180 fs/f2fs/file.c 	down_read(&sbi->sb_lock);
sbi              3181 fs/f2fs/file.c 	count = utf16s_to_utf8s(sbi->raw_super->volume_name,
sbi              3182 fs/f2fs/file.c 			ARRAY_SIZE(sbi->raw_super->volume_name),
sbi              3184 fs/f2fs/file.c 	up_read(&sbi->sb_lock);
sbi              3197 fs/f2fs/file.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3212 fs/f2fs/file.c 	down_write(&sbi->sb_lock);
sbi              3214 fs/f2fs/file.c 	memset(sbi->raw_super->volume_name, 0,
sbi              3215 fs/f2fs/file.c 			sizeof(sbi->raw_super->volume_name));
sbi              3217 fs/f2fs/file.c 			sbi->raw_super->volume_name,
sbi              3218 fs/f2fs/file.c 			ARRAY_SIZE(sbi->raw_super->volume_name));
sbi              3220 fs/f2fs/file.c 	err = f2fs_commit_super(sbi, false);
sbi              3222 fs/f2fs/file.c 	up_write(&sbi->sb_lock);
sbi                25 fs/f2fs/gc.c   	struct f2fs_sb_info *sbi = data;
sbi                26 fs/f2fs/gc.c   	struct f2fs_gc_kthread *gc_th = sbi->gc_thread;
sbi                27 fs/f2fs/gc.c   	wait_queue_head_t *wq = &sbi->gc_thread->gc_wait_queue_head;
sbi                44 fs/f2fs/gc.c   			stat_other_skip_bggc_count(sbi);
sbi                50 fs/f2fs/gc.c   		if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) {
sbi                52 fs/f2fs/gc.c   			stat_other_skip_bggc_count(sbi);
sbi                56 fs/f2fs/gc.c   		if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
sbi                58 fs/f2fs/gc.c   			f2fs_stop_checkpoint(sbi, false);
sbi                61 fs/f2fs/gc.c   		if (!sb_start_write_trylock(sbi->sb)) {
sbi                62 fs/f2fs/gc.c   			stat_other_skip_bggc_count(sbi);
sbi                79 fs/f2fs/gc.c   		if (sbi->gc_mode == GC_URGENT) {
sbi                81 fs/f2fs/gc.c   			mutex_lock(&sbi->gc_mutex);
sbi                85 fs/f2fs/gc.c   		if (!mutex_trylock(&sbi->gc_mutex)) {
sbi                86 fs/f2fs/gc.c   			stat_other_skip_bggc_count(sbi);
sbi                90 fs/f2fs/gc.c   		if (!is_idle(sbi, GC_TIME)) {
sbi                92 fs/f2fs/gc.c   			mutex_unlock(&sbi->gc_mutex);
sbi                93 fs/f2fs/gc.c   			stat_io_skip_bggc_count(sbi);
sbi                97 fs/f2fs/gc.c   		if (has_enough_invalid_blocks(sbi))
sbi               102 fs/f2fs/gc.c   		stat_inc_bggc_count(sbi);
sbi               105 fs/f2fs/gc.c   		if (f2fs_gc(sbi, test_opt(sbi, FORCE_FG_GC), true, NULL_SEGNO))
sbi               108 fs/f2fs/gc.c   		trace_f2fs_background_gc(sbi->sb, wait_ms,
sbi               109 fs/f2fs/gc.c   				prefree_segments(sbi), free_segments(sbi));
sbi               112 fs/f2fs/gc.c   		f2fs_balance_fs_bg(sbi);
sbi               114 fs/f2fs/gc.c   		sb_end_write(sbi->sb);
sbi               120 fs/f2fs/gc.c   int f2fs_start_gc_thread(struct f2fs_sb_info *sbi)
sbi               123 fs/f2fs/gc.c   	dev_t dev = sbi->sb->s_bdev->bd_dev;
sbi               126 fs/f2fs/gc.c   	gc_th = f2fs_kmalloc(sbi, sizeof(struct f2fs_gc_kthread), GFP_KERNEL);
sbi               139 fs/f2fs/gc.c   	sbi->gc_thread = gc_th;
sbi               140 fs/f2fs/gc.c   	init_waitqueue_head(&sbi->gc_thread->gc_wait_queue_head);
sbi               141 fs/f2fs/gc.c   	sbi->gc_thread->f2fs_gc_task = kthread_run(gc_thread_func, sbi,
sbi               146 fs/f2fs/gc.c   		sbi->gc_thread = NULL;
sbi               152 fs/f2fs/gc.c   void f2fs_stop_gc_thread(struct f2fs_sb_info *sbi)
sbi               154 fs/f2fs/gc.c   	struct f2fs_gc_kthread *gc_th = sbi->gc_thread;
sbi               159 fs/f2fs/gc.c   	sbi->gc_thread = NULL;
sbi               162 fs/f2fs/gc.c   static int select_gc_type(struct f2fs_sb_info *sbi, int gc_type)
sbi               166 fs/f2fs/gc.c   	switch (sbi->gc_mode) {
sbi               178 fs/f2fs/gc.c   static void select_policy(struct f2fs_sb_info *sbi, int gc_type,
sbi               181 fs/f2fs/gc.c   	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               189 fs/f2fs/gc.c   		p->gc_mode = select_gc_type(sbi, gc_type);
sbi               192 fs/f2fs/gc.c   		p->ofs_unit = sbi->segs_per_sec;
sbi               197 fs/f2fs/gc.c   			(sbi->gc_mode != GC_URGENT) &&
sbi               198 fs/f2fs/gc.c   			p->max_search > sbi->max_victim_search)
sbi               199 fs/f2fs/gc.c   		p->max_search = sbi->max_victim_search;
sbi               202 fs/f2fs/gc.c   	if (test_opt(sbi, NOHEAP) &&
sbi               206 fs/f2fs/gc.c   		p->offset = SIT_I(sbi)->last_victim[p->gc_mode];
sbi               209 fs/f2fs/gc.c   static unsigned int get_max_cost(struct f2fs_sb_info *sbi,
sbi               214 fs/f2fs/gc.c   		return sbi->blocks_per_seg;
sbi               216 fs/f2fs/gc.c   		return 2 * sbi->blocks_per_seg * p->ofs_unit;
sbi               223 fs/f2fs/gc.c   static unsigned int check_bg_victims(struct f2fs_sb_info *sbi)
sbi               225 fs/f2fs/gc.c   	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               233 fs/f2fs/gc.c   	for_each_set_bit(secno, dirty_i->victim_secmap, MAIN_SECS(sbi)) {
sbi               234 fs/f2fs/gc.c   		if (sec_usage_check(sbi, secno))
sbi               237 fs/f2fs/gc.c   		return GET_SEG_FROM_SEC(sbi, secno);
sbi               242 fs/f2fs/gc.c   static unsigned int get_cb_cost(struct f2fs_sb_info *sbi, unsigned int segno)
sbi               244 fs/f2fs/gc.c   	struct sit_info *sit_i = SIT_I(sbi);
sbi               245 fs/f2fs/gc.c   	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               246 fs/f2fs/gc.c   	unsigned int start = GET_SEG_FROM_SEC(sbi, secno);
sbi               253 fs/f2fs/gc.c   	for (i = 0; i < sbi->segs_per_sec; i++)
sbi               254 fs/f2fs/gc.c   		mtime += get_seg_entry(sbi, start + i)->mtime;
sbi               255 fs/f2fs/gc.c   	vblocks = get_valid_blocks(sbi, segno, true);
sbi               257 fs/f2fs/gc.c   	mtime = div_u64(mtime, sbi->segs_per_sec);
sbi               258 fs/f2fs/gc.c   	vblocks = div_u64(vblocks, sbi->segs_per_sec);
sbi               260 fs/f2fs/gc.c   	u = (vblocks * 100) >> sbi->log_blocks_per_seg;
sbi               274 fs/f2fs/gc.c   static inline unsigned int get_gc_cost(struct f2fs_sb_info *sbi,
sbi               278 fs/f2fs/gc.c   		return get_seg_entry(sbi, segno)->ckpt_valid_blocks;
sbi               282 fs/f2fs/gc.c   		return get_valid_blocks(sbi, segno, true);
sbi               284 fs/f2fs/gc.c   		return get_cb_cost(sbi, segno);
sbi               307 fs/f2fs/gc.c   static int get_victim_by_default(struct f2fs_sb_info *sbi,
sbi               310 fs/f2fs/gc.c   	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               311 fs/f2fs/gc.c   	struct sit_info *sm = SIT_I(sbi);
sbi               318 fs/f2fs/gc.c   	last_segment = MAIN_SECS(sbi) * sbi->segs_per_sec;
sbi               321 fs/f2fs/gc.c   	select_policy(sbi, gc_type, type, &p);
sbi               324 fs/f2fs/gc.c   	p.min_cost = get_max_cost(sbi, &p);
sbi               327 fs/f2fs/gc.c   		if (get_valid_blocks(sbi, *result, false) &&
sbi               328 fs/f2fs/gc.c   			!sec_usage_check(sbi, GET_SEC_FROM_SEG(sbi, *result)))
sbi               336 fs/f2fs/gc.c   	if (__is_large_section(sbi) && p.alloc_mode == LFS) {
sbi               337 fs/f2fs/gc.c   		if (sbi->next_victim_seg[BG_GC] != NULL_SEGNO) {
sbi               338 fs/f2fs/gc.c   			p.min_segno = sbi->next_victim_seg[BG_GC];
sbi               340 fs/f2fs/gc.c   			sbi->next_victim_seg[BG_GC] = NULL_SEGNO;
sbi               344 fs/f2fs/gc.c   				sbi->next_victim_seg[FG_GC] != NULL_SEGNO) {
sbi               345 fs/f2fs/gc.c   			p.min_segno = sbi->next_victim_seg[FG_GC];
sbi               347 fs/f2fs/gc.c   			sbi->next_victim_seg[FG_GC] = NULL_SEGNO;
sbi               354 fs/f2fs/gc.c   		p.min_segno = check_bg_victims(sbi);
sbi               395 fs/f2fs/gc.c   		secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               397 fs/f2fs/gc.c   		if (sec_usage_check(sbi, secno))
sbi               400 fs/f2fs/gc.c   		if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
sbi               401 fs/f2fs/gc.c   					get_ckpt_valid_blocks(sbi, segno) &&
sbi               407 fs/f2fs/gc.c   		cost = get_gc_cost(sbi, segno, &p);
sbi               420 fs/f2fs/gc.c   				(MAIN_SECS(sbi) * sbi->segs_per_sec);
sbi               429 fs/f2fs/gc.c   			secno = GET_SEC_FROM_SEG(sbi, p.min_segno);
sbi               431 fs/f2fs/gc.c   				sbi->cur_victim_sec = secno;
sbi               439 fs/f2fs/gc.c   		trace_f2fs_get_victim(sbi->sb, type, gc_type, &p,
sbi               440 fs/f2fs/gc.c   				sbi->cur_victim_sec,
sbi               441 fs/f2fs/gc.c   				prefree_segments(sbi), free_segments(sbi));
sbi               487 fs/f2fs/gc.c   static int check_valid_map(struct f2fs_sb_info *sbi,
sbi               490 fs/f2fs/gc.c   	struct sit_info *sit_i = SIT_I(sbi);
sbi               495 fs/f2fs/gc.c   	sentry = get_seg_entry(sbi, segno);
sbi               506 fs/f2fs/gc.c   static int gc_node_segment(struct f2fs_sb_info *sbi,
sbi               516 fs/f2fs/gc.c   	start_addr = START_BLOCK(sbi, segno);
sbi               522 fs/f2fs/gc.c   		atomic_inc(&sbi->wb_sync_req[NODE]);
sbi               524 fs/f2fs/gc.c   	for (off = 0; off < sbi->blocks_per_seg; off++, entry++) {
sbi               531 fs/f2fs/gc.c   		if (gc_type == BG_GC && has_not_enough_free_secs(sbi, 0, 0))
sbi               534 fs/f2fs/gc.c   		if (check_valid_map(sbi, segno, off) == 0)
sbi               538 fs/f2fs/gc.c   			f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), 1,
sbi               544 fs/f2fs/gc.c   			f2fs_ra_node_page(sbi, nid);
sbi               549 fs/f2fs/gc.c   		node_page = f2fs_get_node_page(sbi, nid);
sbi               554 fs/f2fs/gc.c   		if (check_valid_map(sbi, segno, off) == 0) {
sbi               559 fs/f2fs/gc.c   		if (f2fs_get_node_info(sbi, nid, &ni)) {
sbi               572 fs/f2fs/gc.c   		stat_inc_node_blk_count(sbi, 1, gc_type);
sbi               579 fs/f2fs/gc.c   		atomic_dec(&sbi->wb_sync_req[NODE]);
sbi               610 fs/f2fs/gc.c   static bool is_alive(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
sbi               621 fs/f2fs/gc.c   	node_page = f2fs_get_node_page(sbi, nid);
sbi               625 fs/f2fs/gc.c   	if (f2fs_get_node_info(sbi, nid, dni)) {
sbi               631 fs/f2fs/gc.c   		f2fs_warn(sbi, "%s: valid data with mismatched node version.",
sbi               633 fs/f2fs/gc.c   		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               642 fs/f2fs/gc.c   		unsigned int segno = GET_SEGNO(sbi, blkaddr);
sbi               643 fs/f2fs/gc.c   		unsigned long offset = GET_BLKOFF_FROM_SEG0(sbi, blkaddr);
sbi               645 fs/f2fs/gc.c   		if (unlikely(check_valid_map(sbi, segno, offset))) {
sbi               646 fs/f2fs/gc.c   			if (!test_and_set_bit(segno, SIT_I(sbi)->invalid_segmap)) {
sbi               647 fs/f2fs/gc.c   				f2fs_err(sbi, "mismatched blkaddr %u (source_blkaddr %u) in seg %u\n",
sbi               649 fs/f2fs/gc.c   				f2fs_bug_on(sbi, 1);
sbi               660 fs/f2fs/gc.c   	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               666 fs/f2fs/gc.c   		.sbi = sbi,
sbi               684 fs/f2fs/gc.c   		if (unlikely(!f2fs_is_valid_blkaddr(sbi, dn.data_blkaddr,
sbi               702 fs/f2fs/gc.c   	if (unlikely(!f2fs_is_valid_blkaddr(sbi, dn.data_blkaddr,
sbi               720 fs/f2fs/gc.c   	fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(sbi),
sbi               749 fs/f2fs/gc.c   		.sbi = F2FS_I_SB(inode),
sbi               765 fs/f2fs/gc.c   	bool lfs_mode = test_opt(fio.sbi, LFS);
sbi               809 fs/f2fs/gc.c   	err = f2fs_get_node_info(fio.sbi, dn.nid, &ni);
sbi               820 fs/f2fs/gc.c   		down_write(&fio.sbi->io_order_lock);
sbi               822 fs/f2fs/gc.c   	mpage = f2fs_grab_cache_page(META_MAPPING(fio.sbi),
sbi               837 fs/f2fs/gc.c   		if (unlikely(mpage->mapping != META_MAPPING(fio.sbi) ||
sbi               845 fs/f2fs/gc.c   	f2fs_allocate_data_block(fio.sbi, NULL, fio.old_blkaddr, &newaddr,
sbi               848 fs/f2fs/gc.c   	fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(fio.sbi),
sbi               861 fs/f2fs/gc.c   	invalidate_mapping_pages(META_MAPPING(fio.sbi),
sbi               866 fs/f2fs/gc.c   		dec_page_count(fio.sbi, F2FS_DIRTY_META);
sbi               885 fs/f2fs/gc.c   	f2fs_update_iostat(fio.sbi, FS_GC_DATA_IO, F2FS_BLKSIZE);
sbi               895 fs/f2fs/gc.c   		f2fs_do_replace_block(fio.sbi, &sum, newaddr, fio.old_blkaddr,
sbi               899 fs/f2fs/gc.c   		up_write(&fio.sbi->io_order_lock);
sbi               944 fs/f2fs/gc.c   			.sbi = F2FS_I_SB(inode),
sbi               992 fs/f2fs/gc.c   static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
sbi               995 fs/f2fs/gc.c   	struct super_block *sb = sbi->sb;
sbi              1002 fs/f2fs/gc.c   	start_addr = START_BLOCK(sbi, segno);
sbi              1007 fs/f2fs/gc.c   	for (off = 0; off < sbi->blocks_per_seg; off++, entry++) {
sbi              1016 fs/f2fs/gc.c   		if (gc_type == BG_GC && has_not_enough_free_secs(sbi, 0, 0))
sbi              1019 fs/f2fs/gc.c   		if (check_valid_map(sbi, segno, off) == 0)
sbi              1023 fs/f2fs/gc.c   			f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), 1,
sbi              1029 fs/f2fs/gc.c   			f2fs_ra_node_page(sbi, nid);
sbi              1034 fs/f2fs/gc.c   		if (!is_alive(sbi, entry, &dni, start_addr + off, &nofs))
sbi              1038 fs/f2fs/gc.c   			f2fs_ra_node_page(sbi, dni.ino);
sbi              1052 fs/f2fs/gc.c   				sbi->skipped_gc_rwsem++;
sbi              1096 fs/f2fs/gc.c   					sbi->skipped_gc_rwsem++;
sbi              1124 fs/f2fs/gc.c   			stat_inc_data_blk_count(sbi, 1, gc_type);
sbi              1134 fs/f2fs/gc.c   static int __get_victim(struct f2fs_sb_info *sbi, unsigned int *victim,
sbi              1137 fs/f2fs/gc.c   	struct sit_info *sit_i = SIT_I(sbi);
sbi              1141 fs/f2fs/gc.c   	ret = DIRTY_I(sbi)->v_ops->get_victim(sbi, victim, gc_type,
sbi              1147 fs/f2fs/gc.c   static int do_garbage_collect(struct f2fs_sb_info *sbi,
sbi              1155 fs/f2fs/gc.c   	unsigned int end_segno = start_segno + sbi->segs_per_sec;
sbi              1157 fs/f2fs/gc.c   	unsigned char type = IS_DATASEG(get_seg_entry(sbi, segno)->type) ?
sbi              1161 fs/f2fs/gc.c   	if (__is_large_section(sbi))
sbi              1162 fs/f2fs/gc.c   		end_segno = rounddown(end_segno, sbi->segs_per_sec);
sbi              1165 fs/f2fs/gc.c   	if (__is_large_section(sbi))
sbi              1166 fs/f2fs/gc.c   		f2fs_ra_meta_pages(sbi, GET_SUM_BLOCK(sbi, segno),
sbi              1171 fs/f2fs/gc.c   		sum_page = f2fs_get_sum_page(sbi, segno++);
sbi              1177 fs/f2fs/gc.c   				sum_page = find_get_page(META_MAPPING(sbi),
sbi              1178 fs/f2fs/gc.c   						GET_SUM_BLOCK(sbi, segno));
sbi              1192 fs/f2fs/gc.c   		sum_page = find_get_page(META_MAPPING(sbi),
sbi              1193 fs/f2fs/gc.c   					GET_SUM_BLOCK(sbi, segno));
sbi              1196 fs/f2fs/gc.c   		if (get_valid_blocks(sbi, segno, false) == 0)
sbi              1198 fs/f2fs/gc.c   		if (__is_large_section(sbi) &&
sbi              1199 fs/f2fs/gc.c   				migrated >= sbi->migration_granularity)
sbi              1201 fs/f2fs/gc.c   		if (!PageUptodate(sum_page) || unlikely(f2fs_cp_error(sbi)))
sbi              1206 fs/f2fs/gc.c   			f2fs_err(sbi, "Inconsistent segment (%u) type [%d, %d] in SSA and SIT",
sbi              1208 fs/f2fs/gc.c   			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              1209 fs/f2fs/gc.c   			f2fs_stop_checkpoint(sbi, false);
sbi              1221 fs/f2fs/gc.c   			submitted += gc_node_segment(sbi, sum->entries, segno,
sbi              1224 fs/f2fs/gc.c   			submitted += gc_data_segment(sbi, sum->entries, gc_list,
sbi              1227 fs/f2fs/gc.c   		stat_inc_seg_count(sbi, type, gc_type);
sbi              1231 fs/f2fs/gc.c   				get_valid_blocks(sbi, segno, false) == 0)
sbi              1235 fs/f2fs/gc.c   		if (__is_large_section(sbi) && segno + 1 < end_segno)
sbi              1236 fs/f2fs/gc.c   			sbi->next_victim_seg[gc_type] = segno + 1;
sbi              1242 fs/f2fs/gc.c   		f2fs_submit_merged_write(sbi,
sbi              1247 fs/f2fs/gc.c   	stat_inc_call_count(sbi->stat_info);
sbi              1252 fs/f2fs/gc.c   int f2fs_gc(struct f2fs_sb_info *sbi, bool sync,
sbi              1264 fs/f2fs/gc.c   	unsigned long long last_skipped = sbi->skipped_atomic_files[FG_GC];
sbi              1268 fs/f2fs/gc.c   	trace_f2fs_gc_begin(sbi->sb, sync, background,
sbi              1269 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_NODES),
sbi              1270 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_DENTS),
sbi              1271 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_IMETA),
sbi              1272 fs/f2fs/gc.c   				free_sections(sbi),
sbi              1273 fs/f2fs/gc.c   				free_segments(sbi),
sbi              1274 fs/f2fs/gc.c   				reserved_segments(sbi),
sbi              1275 fs/f2fs/gc.c   				prefree_segments(sbi));
sbi              1277 fs/f2fs/gc.c   	cpc.reason = __get_cp_reason(sbi);
sbi              1278 fs/f2fs/gc.c   	sbi->skipped_gc_rwsem = 0;
sbi              1281 fs/f2fs/gc.c   	if (unlikely(!(sbi->sb->s_flags & SB_ACTIVE))) {
sbi              1285 fs/f2fs/gc.c   	if (unlikely(f2fs_cp_error(sbi))) {
sbi              1290 fs/f2fs/gc.c   	if (gc_type == BG_GC && has_not_enough_free_secs(sbi, 0, 0)) {
sbi              1296 fs/f2fs/gc.c   		if (prefree_segments(sbi) &&
sbi              1297 fs/f2fs/gc.c   				!is_sbi_flag_set(sbi, SBI_CP_DISABLED)) {
sbi              1298 fs/f2fs/gc.c   			ret = f2fs_write_checkpoint(sbi, &cpc);
sbi              1302 fs/f2fs/gc.c   		if (has_not_enough_free_secs(sbi, 0, 0))
sbi              1311 fs/f2fs/gc.c   	if (!__get_victim(sbi, &segno, gc_type)) {
sbi              1316 fs/f2fs/gc.c   	seg_freed = do_garbage_collect(sbi, segno, &gc_list, gc_type);
sbi              1317 fs/f2fs/gc.c   	if (gc_type == FG_GC && seg_freed == sbi->segs_per_sec)
sbi              1322 fs/f2fs/gc.c   		if (sbi->skipped_atomic_files[FG_GC] > last_skipped ||
sbi              1323 fs/f2fs/gc.c   						sbi->skipped_gc_rwsem)
sbi              1325 fs/f2fs/gc.c   		last_skipped = sbi->skipped_atomic_files[FG_GC];
sbi              1330 fs/f2fs/gc.c   		sbi->cur_victim_sec = NULL_SEGNO;
sbi              1335 fs/f2fs/gc.c   	if (has_not_enough_free_secs(sbi, sec_freed, 0)) {
sbi              1344 fs/f2fs/gc.c   						sbi->skipped_gc_rwsem) {
sbi              1345 fs/f2fs/gc.c   			f2fs_drop_inmem_pages_all(sbi, true);
sbi              1349 fs/f2fs/gc.c   		if (gc_type == FG_GC && !is_sbi_flag_set(sbi, SBI_CP_DISABLED))
sbi              1350 fs/f2fs/gc.c   			ret = f2fs_write_checkpoint(sbi, &cpc);
sbi              1353 fs/f2fs/gc.c   	SIT_I(sbi)->last_victim[ALLOC_NEXT] = 0;
sbi              1354 fs/f2fs/gc.c   	SIT_I(sbi)->last_victim[FLUSH_DEVICE] = init_segno;
sbi              1356 fs/f2fs/gc.c   	trace_f2fs_gc_end(sbi->sb, ret, total_freed, sec_freed,
sbi              1357 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_NODES),
sbi              1358 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_DENTS),
sbi              1359 fs/f2fs/gc.c   				get_pages(sbi, F2FS_DIRTY_IMETA),
sbi              1360 fs/f2fs/gc.c   				free_sections(sbi),
sbi              1361 fs/f2fs/gc.c   				free_segments(sbi),
sbi              1362 fs/f2fs/gc.c   				reserved_segments(sbi),
sbi              1363 fs/f2fs/gc.c   				prefree_segments(sbi));
sbi              1365 fs/f2fs/gc.c   	mutex_unlock(&sbi->gc_mutex);
sbi              1374 fs/f2fs/gc.c   void f2fs_build_gc_manager(struct f2fs_sb_info *sbi)
sbi              1376 fs/f2fs/gc.c   	DIRTY_I(sbi)->v_ops = &default_v_ops;
sbi              1378 fs/f2fs/gc.c   	sbi->gc_pin_file_threshold = DEF_GC_FAILED_PINNED_FILES;
sbi              1381 fs/f2fs/gc.c   	if (f2fs_is_multi_device(sbi) && !__is_large_section(sbi))
sbi              1382 fs/f2fs/gc.c   		SIT_I(sbi)->last_victim[ALLOC_NEXT] =
sbi              1383 fs/f2fs/gc.c   				GET_SEGNO(sbi, FDEV(0).end_blk) + 1;
sbi              1386 fs/f2fs/gc.c   static int free_segment_range(struct f2fs_sb_info *sbi, unsigned int start,
sbi              1395 fs/f2fs/gc.c   		allocate_segment_for_resize(sbi, type, start, end);
sbi              1398 fs/f2fs/gc.c   	for (segno = start; segno <= end; segno += sbi->segs_per_sec) {
sbi              1404 fs/f2fs/gc.c   		mutex_lock(&sbi->gc_mutex);
sbi              1405 fs/f2fs/gc.c   		do_garbage_collect(sbi, segno, &gc_list, FG_GC);
sbi              1406 fs/f2fs/gc.c   		mutex_unlock(&sbi->gc_mutex);
sbi              1409 fs/f2fs/gc.c   		if (get_valid_blocks(sbi, segno, true))
sbi              1413 fs/f2fs/gc.c   	err = f2fs_sync_fs(sbi->sb, 1);
sbi              1417 fs/f2fs/gc.c   	next_inuse = find_next_inuse(FREE_I(sbi), end + 1, start);
sbi              1419 fs/f2fs/gc.c   		f2fs_err(sbi, "segno %u should be free but still inuse!",
sbi              1421 fs/f2fs/gc.c   		f2fs_bug_on(sbi, 1);
sbi              1426 fs/f2fs/gc.c   static void update_sb_metadata(struct f2fs_sb_info *sbi, int secs)
sbi              1428 fs/f2fs/gc.c   	struct f2fs_super_block *raw_sb = F2FS_RAW_SUPER(sbi);
sbi              1433 fs/f2fs/gc.c   	int segs = secs * sbi->segs_per_sec;
sbi              1439 fs/f2fs/gc.c   					(long long)segs * sbi->blocks_per_seg);
sbi              1442 fs/f2fs/gc.c   static void update_fs_metadata(struct f2fs_sb_info *sbi, int secs)
sbi              1444 fs/f2fs/gc.c   	int segs = secs * sbi->segs_per_sec;
sbi              1446 fs/f2fs/gc.c   				le64_to_cpu(F2FS_CKPT(sbi)->user_block_count);
sbi              1448 fs/f2fs/gc.c   	SM_I(sbi)->segment_count = (int)SM_I(sbi)->segment_count + segs;
sbi              1449 fs/f2fs/gc.c   	MAIN_SEGS(sbi) = (int)MAIN_SEGS(sbi) + segs;
sbi              1450 fs/f2fs/gc.c   	FREE_I(sbi)->free_sections = (int)FREE_I(sbi)->free_sections + secs;
sbi              1451 fs/f2fs/gc.c   	FREE_I(sbi)->free_segments = (int)FREE_I(sbi)->free_segments + segs;
sbi              1452 fs/f2fs/gc.c   	F2FS_CKPT(sbi)->user_block_count = cpu_to_le64(user_block_count +
sbi              1453 fs/f2fs/gc.c   					(long long)segs * sbi->blocks_per_seg);
sbi              1456 fs/f2fs/gc.c   int f2fs_resize_fs(struct f2fs_sb_info *sbi, __u64 block_count)
sbi              1464 fs/f2fs/gc.c   	old_block_count = le64_to_cpu(F2FS_RAW_SUPER(sbi)->block_count);
sbi              1469 fs/f2fs/gc.c   	div_u64_rem(block_count, BLKS_PER_SEC(sbi), &rem);
sbi              1476 fs/f2fs/gc.c   	if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
sbi              1477 fs/f2fs/gc.c   		f2fs_err(sbi, "Should run fsck to repair first.");
sbi              1481 fs/f2fs/gc.c   	if (test_opt(sbi, DISABLE_CHECKPOINT)) {
sbi              1482 fs/f2fs/gc.c   		f2fs_err(sbi, "Checkpoint should be enabled.");
sbi              1486 fs/f2fs/gc.c   	freeze_bdev(sbi->sb->s_bdev);
sbi              1489 fs/f2fs/gc.c   	secs = div_u64(shrunk_blocks, BLKS_PER_SEC(sbi));
sbi              1490 fs/f2fs/gc.c   	spin_lock(&sbi->stat_lock);
sbi              1491 fs/f2fs/gc.c   	if (shrunk_blocks + valid_user_blocks(sbi) +
sbi              1492 fs/f2fs/gc.c   		sbi->current_reserved_blocks + sbi->unusable_block_count +
sbi              1493 fs/f2fs/gc.c   		F2FS_OPTION(sbi).root_reserved_blocks > sbi->user_block_count)
sbi              1496 fs/f2fs/gc.c   		sbi->user_block_count -= shrunk_blocks;
sbi              1497 fs/f2fs/gc.c   	spin_unlock(&sbi->stat_lock);
sbi              1499 fs/f2fs/gc.c   		thaw_bdev(sbi->sb->s_bdev, sbi->sb);
sbi              1503 fs/f2fs/gc.c   	mutex_lock(&sbi->resize_mutex);
sbi              1504 fs/f2fs/gc.c   	set_sbi_flag(sbi, SBI_IS_RESIZEFS);
sbi              1506 fs/f2fs/gc.c   	mutex_lock(&DIRTY_I(sbi)->seglist_lock);
sbi              1508 fs/f2fs/gc.c   	MAIN_SECS(sbi) -= secs;
sbi              1511 fs/f2fs/gc.c   		if (SIT_I(sbi)->last_victim[gc_mode] >=
sbi              1512 fs/f2fs/gc.c   					MAIN_SECS(sbi) * sbi->segs_per_sec)
sbi              1513 fs/f2fs/gc.c   			SIT_I(sbi)->last_victim[gc_mode] = 0;
sbi              1516 fs/f2fs/gc.c   		if (sbi->next_victim_seg[gc_type] >=
sbi              1517 fs/f2fs/gc.c   					MAIN_SECS(sbi) * sbi->segs_per_sec)
sbi              1518 fs/f2fs/gc.c   			sbi->next_victim_seg[gc_type] = NULL_SEGNO;
sbi              1520 fs/f2fs/gc.c   	mutex_unlock(&DIRTY_I(sbi)->seglist_lock);
sbi              1522 fs/f2fs/gc.c   	err = free_segment_range(sbi, MAIN_SECS(sbi) * sbi->segs_per_sec,
sbi              1523 fs/f2fs/gc.c   			MAIN_SEGS(sbi) - 1);
sbi              1527 fs/f2fs/gc.c   	update_sb_metadata(sbi, -secs);
sbi              1529 fs/f2fs/gc.c   	err = f2fs_commit_super(sbi, false);
sbi              1531 fs/f2fs/gc.c   		update_sb_metadata(sbi, secs);
sbi              1535 fs/f2fs/gc.c   	mutex_lock(&sbi->cp_mutex);
sbi              1536 fs/f2fs/gc.c   	update_fs_metadata(sbi, -secs);
sbi              1537 fs/f2fs/gc.c   	clear_sbi_flag(sbi, SBI_IS_RESIZEFS);
sbi              1538 fs/f2fs/gc.c   	set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1539 fs/f2fs/gc.c   	mutex_unlock(&sbi->cp_mutex);
sbi              1541 fs/f2fs/gc.c   	err = f2fs_sync_fs(sbi->sb, 1);
sbi              1543 fs/f2fs/gc.c   		mutex_lock(&sbi->cp_mutex);
sbi              1544 fs/f2fs/gc.c   		update_fs_metadata(sbi, secs);
sbi              1545 fs/f2fs/gc.c   		mutex_unlock(&sbi->cp_mutex);
sbi              1546 fs/f2fs/gc.c   		update_sb_metadata(sbi, secs);
sbi              1547 fs/f2fs/gc.c   		f2fs_commit_super(sbi, false);
sbi              1551 fs/f2fs/gc.c   		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              1552 fs/f2fs/gc.c   		f2fs_err(sbi, "resize_fs failed, should run fsck to repair!");
sbi              1554 fs/f2fs/gc.c   		MAIN_SECS(sbi) += secs;
sbi              1555 fs/f2fs/gc.c   		spin_lock(&sbi->stat_lock);
sbi              1556 fs/f2fs/gc.c   		sbi->user_block_count += shrunk_blocks;
sbi              1557 fs/f2fs/gc.c   		spin_unlock(&sbi->stat_lock);
sbi              1559 fs/f2fs/gc.c   	clear_sbi_flag(sbi, SBI_IS_RESIZEFS);
sbi              1560 fs/f2fs/gc.c   	mutex_unlock(&sbi->resize_mutex);
sbi              1561 fs/f2fs/gc.c   	thaw_bdev(sbi->sb->s_bdev, sbi->sb);
sbi                47 fs/f2fs/gc.h   static inline block_t free_user_blocks(struct f2fs_sb_info *sbi)
sbi                49 fs/f2fs/gc.h   	if (free_segments(sbi) < overprovision_segments(sbi))
sbi                52 fs/f2fs/gc.h   		return (free_segments(sbi) - overprovision_segments(sbi))
sbi                53 fs/f2fs/gc.h   			<< sbi->log_blocks_per_seg;
sbi                56 fs/f2fs/gc.h   static inline block_t limit_invalid_user_blocks(struct f2fs_sb_info *sbi)
sbi                58 fs/f2fs/gc.h   	return (long)(sbi->user_block_count * LIMIT_INVALID_BLOCK) / 100;
sbi                61 fs/f2fs/gc.h   static inline block_t limit_free_user_blocks(struct f2fs_sb_info *sbi)
sbi                63 fs/f2fs/gc.h   	block_t reclaimable_user_blocks = sbi->user_block_count -
sbi                64 fs/f2fs/gc.h   		written_block_count(sbi);
sbi                97 fs/f2fs/gc.h   static inline bool has_enough_invalid_blocks(struct f2fs_sb_info *sbi)
sbi                99 fs/f2fs/gc.h   	block_t invalid_user_blocks = sbi->user_block_count -
sbi               100 fs/f2fs/gc.h   					written_block_count(sbi);
sbi               106 fs/f2fs/gc.h   	if (invalid_user_blocks > limit_invalid_user_blocks(sbi) &&
sbi               107 fs/f2fs/gc.h   			free_user_blocks(sbi) < limit_free_user_blocks(sbi))
sbi               112 fs/f2fs/hash.c 	struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);
sbi               113 fs/f2fs/hash.c 	const struct unicode_map *um = sbi->s_encoding;
sbi               121 fs/f2fs/hash.c 	buff = f2fs_kzalloc(sbi, sizeof(char) * PATH_MAX, GFP_KERNEL);
sbi               113 fs/f2fs/inline.c 		.sbi = F2FS_I_SB(dn->inode),
sbi               132 fs/f2fs/inline.c 	err = f2fs_get_node_info(fio.sbi, dn->nid, &ni);
sbi               143 fs/f2fs/inline.c 		set_sbi_flag(fio.sbi, SBI_NEED_FSCK);
sbi               144 fs/f2fs/inline.c 		f2fs_warn(fio.sbi, "%s: corrupted inline inode ino=%lx, i_addr[0]:0x%x, run fsck to fix.",
sbi               184 fs/f2fs/inline.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               196 fs/f2fs/inline.c 	f2fs_lock_op(sbi);
sbi               198 fs/f2fs/inline.c 	ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi               211 fs/f2fs/inline.c 	f2fs_unlock_op(sbi);
sbi               215 fs/f2fs/inline.c 	f2fs_balance_fs(sbi, dn.node_changed);
sbi               257 fs/f2fs/inline.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               276 fs/f2fs/inline.c 		ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi               277 fs/f2fs/inline.c 		f2fs_bug_on(sbi, IS_ERR(ipage));
sbi               294 fs/f2fs/inline.c 		ipage = f2fs_get_node_page(sbi, inode->i_ino);
sbi               295 fs/f2fs/inline.c 		f2fs_bug_on(sbi, IS_ERR(ipage));
sbi               310 fs/f2fs/inline.c 	struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);
sbi               318 fs/f2fs/inline.c 	ipage = f2fs_get_node_page(sbi, dir->i_ino);
sbi               546 fs/f2fs/inline.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               556 fs/f2fs/inline.c 	ipage = f2fs_get_node_page(sbi, dir->i_ino);
sbi               640 fs/f2fs/inline.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               646 fs/f2fs/inline.c 	ipage = f2fs_get_node_page(sbi, dir->i_ino);
sbi                73 fs/f2fs/inode.c static int __written_first_block(struct f2fs_sb_info *sbi,
sbi                80 fs/f2fs/inode.c 	if (!f2fs_is_valid_blkaddr(sbi, addr, DATA_GENERIC_ENHANCE))
sbi               122 fs/f2fs/inode.c static bool f2fs_enable_inode_chksum(struct f2fs_sb_info *sbi, struct page *page)
sbi               126 fs/f2fs/inode.c 	if (!f2fs_sb_has_inode_chksum(sbi))
sbi               139 fs/f2fs/inode.c static __u32 f2fs_inode_chksum(struct f2fs_sb_info *sbi, struct page *page)
sbi               150 fs/f2fs/inode.c 	chksum = f2fs_chksum(sbi, sbi->s_chksum_seed, (__u8 *)&ino,
sbi               152 fs/f2fs/inode.c 	chksum_seed = f2fs_chksum(sbi, chksum, (__u8 *)&gen, sizeof(gen));
sbi               154 fs/f2fs/inode.c 	chksum = f2fs_chksum(sbi, chksum_seed, (__u8 *)ri, offset);
sbi               155 fs/f2fs/inode.c 	chksum = f2fs_chksum(sbi, chksum, (__u8 *)&dummy_cs, cs_size);
sbi               157 fs/f2fs/inode.c 	chksum = f2fs_chksum(sbi, chksum, (__u8 *)ri + offset,
sbi               162 fs/f2fs/inode.c bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page)
sbi               167 fs/f2fs/inode.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN)))
sbi               171 fs/f2fs/inode.c 	if (!f2fs_enable_inode_chksum(sbi, page))
sbi               173 fs/f2fs/inode.c 	if (!f2fs_enable_inode_chksum(sbi, page) ||
sbi               180 fs/f2fs/inode.c 	calculated = f2fs_inode_chksum(sbi, page);
sbi               183 fs/f2fs/inode.c 		f2fs_warn(sbi, "checksum invalid, nid = %lu, ino_of_node = %x, %x vs. %x",
sbi               189 fs/f2fs/inode.c void f2fs_inode_chksum_set(struct f2fs_sb_info *sbi, struct page *page)
sbi               193 fs/f2fs/inode.c 	if (!f2fs_enable_inode_chksum(sbi, page))
sbi               196 fs/f2fs/inode.c 	ri->i_inode_checksum = cpu_to_le32(f2fs_inode_chksum(sbi, page));
sbi               201 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               207 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               208 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: corrupted inode i_blocks i_ino=%lx iblocks=%llu, run fsck to fix.",
sbi               214 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               215 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: corrupted inode footer i_ino=%lx, ino,nid: [%u, %u] run fsck to fix.",
sbi               221 fs/f2fs/inode.c 	if (f2fs_sb_has_flexible_inline_xattr(sbi)
sbi               223 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               224 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: corrupted inode ino=%lx, run fsck to fix.",
sbi               230 fs/f2fs/inode.c 			!f2fs_sb_has_extra_attr(sbi)) {
sbi               231 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               232 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: inode (ino=%lx) is with extra_attr, but extra_attr feature is off",
sbi               239 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               240 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: inode (ino=%lx) has corrupted i_extra_isize: %d, max: %zu",
sbi               247 fs/f2fs/inode.c 		f2fs_sb_has_flexible_inline_xattr(sbi) &&
sbi               251 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               252 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: inode (ino=%lx) has corrupted i_inline_xattr_size: %d, max: %zu",
sbi               262 fs/f2fs/inode.c 			(!f2fs_is_valid_blkaddr(sbi, ei->blk,
sbi               264 fs/f2fs/inode.c 			!f2fs_is_valid_blkaddr(sbi, ei->blk + ei->len - 1,
sbi               266 fs/f2fs/inode.c 			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               267 fs/f2fs/inode.c 			f2fs_warn(sbi, "%s: inode (ino=%lx) extent info [%u, %u, %u] is incorrect, run fsck to fix",
sbi               276 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               277 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: inode (ino=%lx, mode=%u) should not have inline_data, run fsck to fix",
sbi               283 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               284 fs/f2fs/inode.c 		f2fs_warn(sbi, "%s: inode (ino=%lx, mode=%u) should not have inline_dentry, run fsck to fix",
sbi               294 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               302 fs/f2fs/inode.c 	if (f2fs_check_nid_range(sbi, inode->i_ino))
sbi               305 fs/f2fs/inode.c 	node_page = f2fs_get_node_page(sbi, inode->i_ino);
sbi               347 fs/f2fs/inode.c 	if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
sbi               382 fs/f2fs/inode.c 		err = __written_first_block(sbi, ri);
sbi               391 fs/f2fs/inode.c 	if (!f2fs_need_inode_block_update(sbi, inode->i_ino))
sbi               397 fs/f2fs/inode.c 	if (f2fs_has_extra_attr(inode) && f2fs_sb_has_project_quota(sbi) &&
sbi               404 fs/f2fs/inode.c 	if (f2fs_has_extra_attr(inode) && f2fs_sb_has_inode_crtime(sbi) &&
sbi               425 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               437 fs/f2fs/inode.c 	if (ino == F2FS_NODE_INO(sbi) || ino == F2FS_META_INO(sbi))
sbi               444 fs/f2fs/inode.c 	if (ino == F2FS_NODE_INO(sbi)) {
sbi               447 fs/f2fs/inode.c 	} else if (ino == F2FS_META_INO(sbi)) {
sbi               592 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               595 fs/f2fs/inode.c 	node_page = f2fs_get_node_page(sbi, inode->i_ino);
sbi               602 fs/f2fs/inode.c 			f2fs_stop_checkpoint(sbi, false);
sbi               612 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               614 fs/f2fs/inode.c 	if (inode->i_ino == F2FS_NODE_INO(sbi) ||
sbi               615 fs/f2fs/inode.c 			inode->i_ino == F2FS_META_INO(sbi))
sbi               625 fs/f2fs/inode.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               634 fs/f2fs/inode.c 		f2fs_balance_fs(sbi, true);
sbi               643 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               654 fs/f2fs/inode.c 	if (inode->i_ino == F2FS_NODE_INO(sbi) ||
sbi               655 fs/f2fs/inode.c 			inode->i_ino == F2FS_META_INO(sbi))
sbi               658 fs/f2fs/inode.c 	f2fs_bug_on(sbi, get_dirty_pages(inode));
sbi               669 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi               672 fs/f2fs/inode.c 	f2fs_remove_ino_entry(sbi, inode->i_ino, APPEND_INO);
sbi               673 fs/f2fs/inode.c 	f2fs_remove_ino_entry(sbi, inode->i_ino, UPDATE_INO);
sbi               674 fs/f2fs/inode.c 	f2fs_remove_ino_entry(sbi, inode->i_ino, FLUSH_INO);
sbi               683 fs/f2fs/inode.c 	if (time_to_inject(sbi, FAULT_EVICT_INODE)) {
sbi               689 fs/f2fs/inode.c 		f2fs_lock_op(sbi);
sbi               691 fs/f2fs/inode.c 		f2fs_unlock_op(sbi);
sbi               705 fs/f2fs/inode.c 			set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi               715 fs/f2fs/inode.c 	if (likely(!f2fs_cp_error(sbi) &&
sbi               716 fs/f2fs/inode.c 				!is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi               717 fs/f2fs/inode.c 		f2fs_bug_on(sbi, is_inode_flag_set(inode, FI_DIRTY_INODE));
sbi               723 fs/f2fs/inode.c 		invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino,
sbi               726 fs/f2fs/inode.c 		invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
sbi               729 fs/f2fs/inode.c 			f2fs_add_ino_entry(sbi, inode->i_ino, APPEND_INO);
sbi               731 fs/f2fs/inode.c 			f2fs_add_ino_entry(sbi, inode->i_ino, UPDATE_INO);
sbi               734 fs/f2fs/inode.c 		f2fs_alloc_nid_failed(sbi, inode->i_ino);
sbi               752 fs/f2fs/inode.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               777 fs/f2fs/inode.c 	err = f2fs_get_node_info(sbi, inode->i_ino, &ni);
sbi               779 fs/f2fs/inode.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               780 fs/f2fs/inode.c 		f2fs_warn(sbi, "May loss orphan inode, run fsck to fix.");
sbi               785 fs/f2fs/inode.c 		err = f2fs_acquire_orphan_inode(sbi);
sbi               787 fs/f2fs/inode.c 			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               788 fs/f2fs/inode.c 			f2fs_warn(sbi, "Too many orphan inodes, run fsck to fix.");
sbi               792 fs/f2fs/inode.c 		f2fs_alloc_nid_done(sbi, inode->i_ino);
sbi               798 fs/f2fs/inode.c 	f2fs_unlock_op(sbi);
sbi                27 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi                38 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi                39 fs/f2fs/namei.c 	if (!f2fs_alloc_nid(sbi, &ino)) {
sbi                40 fs/f2fs/namei.c 		f2fs_unlock_op(sbi);
sbi                44 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi                65 fs/f2fs/namei.c 	if (f2fs_sb_has_project_quota(sbi) &&
sbi                79 fs/f2fs/namei.c 	if ((IS_ENCRYPTED(dir) || DUMMY_ENCRYPTION_ENABLED(sbi)) &&
sbi                83 fs/f2fs/namei.c 	if (f2fs_sb_has_extra_attr(sbi)) {
sbi                88 fs/f2fs/namei.c 	if (test_opt(sbi, INLINE_XATTR))
sbi                91 fs/f2fs/namei.c 	if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode))
sbi                96 fs/f2fs/namei.c 	if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
sbi                97 fs/f2fs/namei.c 		f2fs_bug_on(sbi, !f2fs_has_extra_attr(inode));
sbi                99 fs/f2fs/namei.c 			xattr_size = F2FS_OPTION(sbi).inline_xattr_size;
sbi               172 fs/f2fs/namei.c static inline void set_file_temperature(struct f2fs_sb_info *sbi, struct inode *inode,
sbi               175 fs/f2fs/namei.c 	__u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list;
sbi               178 fs/f2fs/namei.c 	down_read(&sbi->sb_lock);
sbi               180 fs/f2fs/namei.c 	cold_count = le32_to_cpu(sbi->raw_super->extension_count);
sbi               181 fs/f2fs/namei.c 	hot_count = sbi->raw_super->hot_ext_count;
sbi               188 fs/f2fs/namei.c 	up_read(&sbi->sb_lock);
sbi               199 fs/f2fs/namei.c int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name,
sbi               202 fs/f2fs/namei.c 	__u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list;
sbi               203 fs/f2fs/namei.c 	int cold_count = le32_to_cpu(sbi->raw_super->extension_count);
sbi               204 fs/f2fs/namei.c 	int hot_count = sbi->raw_super->hot_ext_count;
sbi               238 fs/f2fs/namei.c 			sbi->raw_super->hot_ext_count = hot_count - 1;
sbi               240 fs/f2fs/namei.c 			sbi->raw_super->extension_count =
sbi               250 fs/f2fs/namei.c 		sbi->raw_super->hot_ext_count = hot_count + 1;
sbi               260 fs/f2fs/namei.c 		sbi->raw_super->extension_count = cpu_to_le32(cold_count + 1);
sbi               268 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               273 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               275 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               286 fs/f2fs/namei.c 	if (!test_opt(sbi, DISABLE_EXT_IDENTIFY))
sbi               287 fs/f2fs/namei.c 		set_file_temperature(sbi, inode, dentry->d_name.name);
sbi               294 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               298 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               300 fs/f2fs/namei.c 	f2fs_alloc_nid_done(sbi, ino);
sbi               305 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi               307 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               318 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               321 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               323 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               339 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               345 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               349 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               354 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi               359 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               378 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               385 fs/f2fs/namei.c 	if (f2fs_readonly(sbi->sb)) {
sbi               386 fs/f2fs/namei.c 		f2fs_info(sbi, "skip recovering inline_dots inode (ino:%lu, pino:%u) in readonly mountpoint",
sbi               395 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               397 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               422 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               514 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               522 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               539 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               541 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               542 fs/f2fs/namei.c 	err = f2fs_acquire_orphan_inode(sbi);
sbi               544 fs/f2fs/namei.c 		f2fs_unlock_op(sbi);
sbi               559 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               562 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi               585 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               591 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               593 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               616 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               620 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               621 fs/f2fs/namei.c 	f2fs_alloc_nid_done(sbi, inode->i_ino);
sbi               646 fs/f2fs/namei.c 			f2fs_sync_fs(sbi->sb, 1);
sbi               651 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               664 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               668 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               685 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               689 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               691 fs/f2fs/namei.c 	f2fs_alloc_nid_done(sbi, inode->i_ino);
sbi               696 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi               698 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               718 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               722 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               724 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               738 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               742 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               744 fs/f2fs/namei.c 	f2fs_alloc_nid_done(sbi, inode->i_ino);
sbi               749 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi               751 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               761 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               782 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi               783 fs/f2fs/namei.c 	err = f2fs_acquire_orphan_inode(sbi);
sbi               796 fs/f2fs/namei.c 	f2fs_alloc_nid_done(sbi, inode->i_ino);
sbi               806 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi               809 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi               813 fs/f2fs/namei.c 	f2fs_release_orphan_inode(sbi);
sbi               821 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
sbi               823 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               825 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               828 fs/f2fs/namei.c 	if (IS_ENCRYPTED(dir) || DUMMY_ENCRYPTION_ENABLED(sbi)) {
sbi               849 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(old_dir);
sbi               861 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               863 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               923 fs/f2fs/namei.c 		f2fs_balance_fs(sbi, true);
sbi               925 fs/f2fs/namei.c 		f2fs_lock_op(sbi);
sbi               927 fs/f2fs/namei.c 		err = f2fs_acquire_orphan_inode(sbi);
sbi               943 fs/f2fs/namei.c 			f2fs_release_orphan_inode(sbi);
sbi               945 fs/f2fs/namei.c 		f2fs_balance_fs(sbi, true);
sbi               947 fs/f2fs/namei.c 		f2fs_lock_op(sbi);
sbi               951 fs/f2fs/namei.c 			f2fs_unlock_op(sbi);
sbi               975 fs/f2fs/namei.c 				f2fs_unlock_op(sbi);
sbi              1011 fs/f2fs/namei.c 	if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_STRICT) {
sbi              1012 fs/f2fs/namei.c 		f2fs_add_ino_entry(sbi, new_dir->i_ino, TRANS_DIR_INO);
sbi              1014 fs/f2fs/namei.c 			f2fs_add_ino_entry(sbi, old_inode->i_ino,
sbi              1018 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi              1021 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi              1023 fs/f2fs/namei.c 	f2fs_update_time(sbi, REQ_TIME);
sbi              1027 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi              1044 fs/f2fs/namei.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(old_dir);
sbi              1054 fs/f2fs/namei.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi              1056 fs/f2fs/namei.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi              1128 fs/f2fs/namei.c 	f2fs_balance_fs(sbi, true);
sbi              1130 fs/f2fs/namei.c 	f2fs_lock_op(sbi);
sbi              1178 fs/f2fs/namei.c 	if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_STRICT) {
sbi              1179 fs/f2fs/namei.c 		f2fs_add_ino_entry(sbi, old_dir->i_ino, TRANS_DIR_INO);
sbi              1180 fs/f2fs/namei.c 		f2fs_add_ino_entry(sbi, new_dir->i_ino, TRANS_DIR_INO);
sbi              1183 fs/f2fs/namei.c 	f2fs_unlock_op(sbi);
sbi              1186 fs/f2fs/namei.c 		f2fs_sync_fs(sbi->sb, 1);
sbi              1188 fs/f2fs/namei.c 	f2fs_update_time(sbi, REQ_TIME);
sbi                33 fs/f2fs/node.c int f2fs_check_nid_range(struct f2fs_sb_info *sbi, nid_t nid)
sbi                35 fs/f2fs/node.c 	if (unlikely(nid < F2FS_ROOT_INO(sbi) || nid >= NM_I(sbi)->max_nid)) {
sbi                36 fs/f2fs/node.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi                37 fs/f2fs/node.c 		f2fs_warn(sbi, "%s: out-of-range nid=%x, run fsck to fix.",
sbi                44 fs/f2fs/node.c bool f2fs_available_free_memory(struct f2fs_sb_info *sbi, int type)
sbi                46 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi                68 fs/f2fs/node.c 		if (excess_cached_nats(sbi))
sbi                71 fs/f2fs/node.c 		if (sbi->sb->s_bdi->wb.dirty_exceeded)
sbi                73 fs/f2fs/node.c 		mem_size = get_pages(sbi, F2FS_DIRTY_DENTS);
sbi                79 fs/f2fs/node.c 			mem_size += sbi->im[i].ino_num *
sbi                84 fs/f2fs/node.c 		mem_size = (atomic_read(&sbi->total_ext_tree) *
sbi                86 fs/f2fs/node.c 				atomic_read(&sbi->total_ext_node) *
sbi                91 fs/f2fs/node.c 		mem_size = get_pages(sbi, F2FS_INMEM_PAGES);
sbi                94 fs/f2fs/node.c 		if (!sbi->sb->s_bdi->wb.dirty_exceeded)
sbi               110 fs/f2fs/node.c static struct page *get_current_nat_page(struct f2fs_sb_info *sbi, nid_t nid)
sbi               112 fs/f2fs/node.c 	return f2fs_get_meta_page_nofail(sbi, current_nat_addr(sbi, nid));
sbi               115 fs/f2fs/node.c static struct page *get_next_nat_page(struct f2fs_sb_info *sbi, nid_t nid)
sbi               122 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               124 fs/f2fs/node.c 	dst_off = next_nat_addr(sbi, current_nat_addr(sbi, nid));
sbi               127 fs/f2fs/node.c 	src_page = get_current_nat_page(sbi, nid);
sbi               130 fs/f2fs/node.c 	dst_page = f2fs_grab_meta_page(sbi, dst_off);
sbi               131 fs/f2fs/node.c 	f2fs_bug_on(sbi, PageDirty(src_page));
sbi               286 fs/f2fs/node.c bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, struct page *page)
sbi               288 fs/f2fs/node.c 	return NODE_MAPPING(sbi) == page->mapping &&
sbi               292 fs/f2fs/node.c void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi)
sbi               294 fs/f2fs/node.c 	spin_lock_init(&sbi->fsync_node_lock);
sbi               295 fs/f2fs/node.c 	INIT_LIST_HEAD(&sbi->fsync_node_list);
sbi               296 fs/f2fs/node.c 	sbi->fsync_seg_id = 0;
sbi               297 fs/f2fs/node.c 	sbi->fsync_node_num = 0;
sbi               300 fs/f2fs/node.c static unsigned int f2fs_add_fsync_node_entry(struct f2fs_sb_info *sbi,
sbi               313 fs/f2fs/node.c 	spin_lock_irqsave(&sbi->fsync_node_lock, flags);
sbi               314 fs/f2fs/node.c 	list_add_tail(&fn->list, &sbi->fsync_node_list);
sbi               315 fs/f2fs/node.c 	fn->seq_id = sbi->fsync_seg_id++;
sbi               317 fs/f2fs/node.c 	sbi->fsync_node_num++;
sbi               318 fs/f2fs/node.c 	spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi               323 fs/f2fs/node.c void f2fs_del_fsync_node_entry(struct f2fs_sb_info *sbi, struct page *page)
sbi               328 fs/f2fs/node.c 	spin_lock_irqsave(&sbi->fsync_node_lock, flags);
sbi               329 fs/f2fs/node.c 	list_for_each_entry(fn, &sbi->fsync_node_list, list) {
sbi               332 fs/f2fs/node.c 			sbi->fsync_node_num--;
sbi               333 fs/f2fs/node.c 			spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi               339 fs/f2fs/node.c 	spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi               340 fs/f2fs/node.c 	f2fs_bug_on(sbi, 1);
sbi               343 fs/f2fs/node.c void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi)
sbi               347 fs/f2fs/node.c 	spin_lock_irqsave(&sbi->fsync_node_lock, flags);
sbi               348 fs/f2fs/node.c 	sbi->fsync_seg_id = 0;
sbi               349 fs/f2fs/node.c 	spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi               352 fs/f2fs/node.c int f2fs_need_dentry_mark(struct f2fs_sb_info *sbi, nid_t nid)
sbi               354 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               369 fs/f2fs/node.c bool f2fs_is_checkpointed_node(struct f2fs_sb_info *sbi, nid_t nid)
sbi               371 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               383 fs/f2fs/node.c bool f2fs_need_inode_block_update(struct f2fs_sb_info *sbi, nid_t ino)
sbi               385 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               400 fs/f2fs/node.c static void cache_nat_entry(struct f2fs_sb_info *sbi, nid_t nid,
sbi               403 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               415 fs/f2fs/node.c 		f2fs_bug_on(sbi, nat_get_ino(e) != le32_to_cpu(ne->ino) ||
sbi               424 fs/f2fs/node.c static void set_node_addr(struct f2fs_sb_info *sbi, struct node_info *ni,
sbi               427 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               436 fs/f2fs/node.c 		f2fs_bug_on(sbi, ni->blk_addr == NEW_ADDR);
sbi               444 fs/f2fs/node.c 		f2fs_bug_on(sbi, ni->blk_addr != NULL_ADDR);
sbi               451 fs/f2fs/node.c 	f2fs_bug_on(sbi, nat_get_blkaddr(e) != ni->blk_addr);
sbi               452 fs/f2fs/node.c 	f2fs_bug_on(sbi, nat_get_blkaddr(e) == NULL_ADDR &&
sbi               454 fs/f2fs/node.c 	f2fs_bug_on(sbi, nat_get_blkaddr(e) == NEW_ADDR &&
sbi               456 fs/f2fs/node.c 	f2fs_bug_on(sbi, __is_valid_data_blkaddr(nat_get_blkaddr(e)) &&
sbi               482 fs/f2fs/node.c int f2fs_try_to_free_nats(struct f2fs_sb_info *sbi, int nr_shrink)
sbi               484 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               516 fs/f2fs/node.c int f2fs_get_node_info(struct f2fs_sb_info *sbi, nid_t nid,
sbi               519 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               520 fs/f2fs/node.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi               560 fs/f2fs/node.c 	index = current_nat_addr(sbi, nid);
sbi               563 fs/f2fs/node.c 	page = f2fs_get_meta_page(sbi, index);
sbi               574 fs/f2fs/node.c 		!f2fs_is_valid_blkaddr(sbi, blkaddr, DATA_GENERIC_ENHANCE))
sbi               578 fs/f2fs/node.c 	cache_nat_entry(sbi, nid, &ne);
sbi               587 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(parent);
sbi               599 fs/f2fs/node.c 		f2fs_ra_node_page(sbi, nid);
sbi               724 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi               741 fs/f2fs/node.c 		npage[0] = f2fs_get_node_page(sbi, nids[0]);
sbi               765 fs/f2fs/node.c 			if (!f2fs_alloc_nid(sbi, &(nids[i]))) {
sbi               773 fs/f2fs/node.c 				f2fs_alloc_nid_failed(sbi, nids[i]);
sbi               779 fs/f2fs/node.c 			f2fs_alloc_nid_done(sbi, nids[i]);
sbi               797 fs/f2fs/node.c 			npage[i] = f2fs_get_node_page(sbi, nids[i]);
sbi               833 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi               838 fs/f2fs/node.c 	err = f2fs_get_node_info(sbi, dn->nid, &ni);
sbi               843 fs/f2fs/node.c 	f2fs_invalidate_blocks(sbi, ni.blk_addr);
sbi               844 fs/f2fs/node.c 	dec_valid_node_count(sbi, dn->inode, dn->nid == dn->inode->i_ino);
sbi               845 fs/f2fs/node.c 	set_node_addr(sbi, &ni, NULL_ADDR, false);
sbi               848 fs/f2fs/node.c 		f2fs_remove_orphan_inode(sbi, dn->nid);
sbi               849 fs/f2fs/node.c 		dec_valid_inode_count(sbi);
sbi               854 fs/f2fs/node.c 	set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi               859 fs/f2fs/node.c 	invalidate_mapping_pages(NODE_MAPPING(sbi),
sbi              1038 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1052 fs/f2fs/node.c 	page = f2fs_get_node_page(sbi, inode->i_ino);
sbi              1115 fs/f2fs/node.c 			BUG_ON(page->mapping != NODE_MAPPING(sbi));
sbi              1134 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1143 fs/f2fs/node.c 	npage = f2fs_get_node_page(sbi, nid);
sbi              1218 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
sbi              1226 fs/f2fs/node.c 	page = f2fs_grab_cache_page(NODE_MAPPING(sbi), dn->nid, false);
sbi              1230 fs/f2fs/node.c 	if (unlikely((err = inc_valid_node_count(sbi, dn->inode, !ofs))))
sbi              1234 fs/f2fs/node.c 	err = f2fs_get_node_info(sbi, dn->nid, &new_ni);
sbi              1236 fs/f2fs/node.c 		dec_valid_node_count(sbi, dn->inode, !ofs);
sbi              1239 fs/f2fs/node.c 	f2fs_bug_on(sbi, new_ni.blk_addr != NULL_ADDR);
sbi              1246 fs/f2fs/node.c 	set_node_addr(sbi, &new_ni, NEW_ADDR, false);
sbi              1260 fs/f2fs/node.c 		inc_valid_inode_count(sbi);
sbi              1276 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(page);
sbi              1279 fs/f2fs/node.c 		.sbi = sbi,
sbi              1289 fs/f2fs/node.c 		if (!f2fs_inode_chksum_verify(sbi, page)) {
sbi              1296 fs/f2fs/node.c 	err = f2fs_get_node_info(sbi, page->index, &ni);
sbi              1301 fs/f2fs/node.c 			is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN)) {
sbi              1313 fs/f2fs/node.c void f2fs_ra_node_page(struct f2fs_sb_info *sbi, nid_t nid)
sbi              1320 fs/f2fs/node.c 	if (f2fs_check_nid_range(sbi, nid))
sbi              1323 fs/f2fs/node.c 	apage = xa_load(&NODE_MAPPING(sbi)->i_pages, nid);
sbi              1327 fs/f2fs/node.c 	apage = f2fs_grab_cache_page(NODE_MAPPING(sbi), nid, false);
sbi              1335 fs/f2fs/node.c static struct page *__get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid,
sbi              1343 fs/f2fs/node.c 	if (f2fs_check_nid_range(sbi, nid))
sbi              1346 fs/f2fs/node.c 	page = f2fs_grab_cache_page(NODE_MAPPING(sbi), nid, false);
sbi              1364 fs/f2fs/node.c 	if (unlikely(page->mapping != NODE_MAPPING(sbi))) {
sbi              1374 fs/f2fs/node.c 	if (!f2fs_inode_chksum_verify(sbi, page)) {
sbi              1380 fs/f2fs/node.c 		f2fs_warn(sbi, "inconsistent node block, nid:%lu, node_footer[nid:%u,ino:%u,ofs:%u,cpver:%llu,blkaddr:%u]",
sbi              1393 fs/f2fs/node.c struct page *f2fs_get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid)
sbi              1395 fs/f2fs/node.c 	return __get_node_page(sbi, nid, NULL, 0);
sbi              1400 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(parent);
sbi              1403 fs/f2fs/node.c 	return __get_node_page(sbi, nid, parent, start);
sbi              1406 fs/f2fs/node.c static void flush_inline_data(struct f2fs_sb_info *sbi, nid_t ino)
sbi              1413 fs/f2fs/node.c 	inode = ilookup(sbi->sb, ino);
sbi              1442 fs/f2fs/node.c static struct page *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino)
sbi              1452 fs/f2fs/node.c 	while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index,
sbi              1459 fs/f2fs/node.c 			if (unlikely(f2fs_cp_error(sbi))) {
sbi              1472 fs/f2fs/node.c 			if (unlikely(page->mapping != NODE_MAPPING(sbi))) {
sbi              1502 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(page);
sbi              1506 fs/f2fs/node.c 		.sbi = sbi,
sbi              1521 fs/f2fs/node.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi              1524 fs/f2fs/node.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi              1527 fs/f2fs/node.c 	if (!is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
sbi              1534 fs/f2fs/node.c 	f2fs_bug_on(sbi, page->index != nid);
sbi              1536 fs/f2fs/node.c 	if (f2fs_get_node_info(sbi, nid, &ni))
sbi              1540 fs/f2fs/node.c 		if (!down_read_trylock(&sbi->node_write))
sbi              1543 fs/f2fs/node.c 		down_read(&sbi->node_write);
sbi              1549 fs/f2fs/node.c 		dec_page_count(sbi, F2FS_DIRTY_NODES);
sbi              1550 fs/f2fs/node.c 		up_read(&sbi->node_write);
sbi              1556 fs/f2fs/node.c 		!f2fs_is_valid_blkaddr(sbi, ni.blk_addr,
sbi              1558 fs/f2fs/node.c 		up_read(&sbi->node_write);
sbi              1562 fs/f2fs/node.c 	if (atomic && !test_opt(sbi, NOBARRIER))
sbi              1566 fs/f2fs/node.c 	if (f2fs_in_warm_node_list(sbi, page)) {
sbi              1567 fs/f2fs/node.c 		seq = f2fs_add_fsync_node_entry(sbi, page);
sbi              1577 fs/f2fs/node.c 	set_node_addr(sbi, &ni, fio.new_blkaddr, is_fsync_dnode(page));
sbi              1578 fs/f2fs/node.c 	dec_page_count(sbi, F2FS_DIRTY_NODES);
sbi              1579 fs/f2fs/node.c 	up_read(&sbi->node_write);
sbi              1582 fs/f2fs/node.c 		f2fs_submit_merged_write_cond(sbi, NULL, page, 0, NODE);
sbi              1588 fs/f2fs/node.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi              1589 fs/f2fs/node.c 		f2fs_submit_merged_write(sbi, NODE);
sbi              1596 fs/f2fs/node.c 		f2fs_balance_fs(sbi, false);
sbi              1649 fs/f2fs/node.c int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
sbi              1663 fs/f2fs/node.c 		last_page = last_fsync_dnode(sbi, ino);
sbi              1671 fs/f2fs/node.c 	while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index,
sbi              1679 fs/f2fs/node.c 			if (unlikely(f2fs_cp_error(sbi))) {
sbi              1693 fs/f2fs/node.c 			if (unlikely(page->mapping != NODE_MAPPING(sbi))) {
sbi              1718 fs/f2fs/node.c 						f2fs_need_dentry_mark(sbi, ino));
sbi              1753 fs/f2fs/node.c 		f2fs_debug(sbi, "Retry to write fsync mark: ino=%u, idx=%lx",
sbi              1763 fs/f2fs/node.c 		f2fs_submit_merged_write_cond(sbi, NULL, NULL, ino, NODE);
sbi              1769 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1778 fs/f2fs/node.c 	spin_lock(&sbi->inode_lock[DIRTY_META]);
sbi              1780 fs/f2fs/node.c 	spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              1793 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_P_SB(page);
sbi              1797 fs/f2fs/node.c 	inode = find_inode_nowait(sbi->sb, ino, f2fs_match_ino, NULL);
sbi              1808 fs/f2fs/node.c int f2fs_sync_node_pages(struct f2fs_sb_info *sbi,
sbi              1825 fs/f2fs/node.c 			NODE_MAPPING(sbi), &index, PAGECACHE_TAG_DIRTY))) {
sbi              1834 fs/f2fs/node.c 			if (atomic_read(&sbi->wb_sync_req[NODE]) &&
sbi              1860 fs/f2fs/node.c 			if (unlikely(page->mapping != NODE_MAPPING(sbi))) {
sbi              1875 fs/f2fs/node.c 				flush_inline_data(sbi, ino_of_node(page));
sbi              1914 fs/f2fs/node.c 		if (!is_sbi_flag_set(sbi, SBI_CP_DISABLED) &&
sbi              1922 fs/f2fs/node.c 		f2fs_submit_merged_write(sbi, NODE);
sbi              1924 fs/f2fs/node.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi              1929 fs/f2fs/node.c int f2fs_wait_on_node_pages_writeback(struct f2fs_sb_info *sbi,
sbi              1934 fs/f2fs/node.c 	struct list_head *head = &sbi->fsync_node_list;
sbi              1940 fs/f2fs/node.c 		spin_lock_irqsave(&sbi->fsync_node_lock, flags);
sbi              1942 fs/f2fs/node.c 			spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi              1947 fs/f2fs/node.c 			spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi              1953 fs/f2fs/node.c 		spin_unlock_irqrestore(&sbi->fsync_node_lock, flags);
sbi              1965 fs/f2fs/node.c 	ret2 = filemap_check_errors(NODE_MAPPING(sbi));
sbi              1975 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_M_SB(mapping);
sbi              1979 fs/f2fs/node.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi              1983 fs/f2fs/node.c 	f2fs_balance_fs_bg(sbi);
sbi              1987 fs/f2fs/node.c 			get_pages(sbi, F2FS_DIRTY_NODES) <
sbi              1988 fs/f2fs/node.c 					nr_pages_to_skip(sbi, NODE))
sbi              1992 fs/f2fs/node.c 		atomic_inc(&sbi->wb_sync_req[NODE]);
sbi              1993 fs/f2fs/node.c 	else if (atomic_read(&sbi->wb_sync_req[NODE]))
sbi              1998 fs/f2fs/node.c 	diff = nr_pages_to_write(sbi, NODE, wbc);
sbi              2000 fs/f2fs/node.c 	f2fs_sync_node_pages(sbi, wbc, true, FS_NODE_IO);
sbi              2005 fs/f2fs/node.c 		atomic_dec(&sbi->wb_sync_req[NODE]);
sbi              2009 fs/f2fs/node.c 	wbc->pages_skipped += get_pages(sbi, F2FS_DIRTY_NODES);
sbi              2054 fs/f2fs/node.c static int __insert_free_nid(struct f2fs_sb_info *sbi,
sbi              2057 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2063 fs/f2fs/node.c 	f2fs_bug_on(sbi, state != i->state);
sbi              2070 fs/f2fs/node.c static void __remove_free_nid(struct f2fs_sb_info *sbi,
sbi              2073 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2075 fs/f2fs/node.c 	f2fs_bug_on(sbi, state != i->state);
sbi              2082 fs/f2fs/node.c static void __move_free_nid(struct f2fs_sb_info *sbi, struct free_nid *i,
sbi              2085 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2087 fs/f2fs/node.c 	f2fs_bug_on(sbi, org_state != i->state);
sbi              2104 fs/f2fs/node.c static void update_free_nid_bitmap(struct f2fs_sb_info *sbi, nid_t nid,
sbi              2107 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2129 fs/f2fs/node.c static bool add_free_nid(struct f2fs_sb_info *sbi,
sbi              2132 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2142 fs/f2fs/node.c 	if (unlikely(f2fs_check_nid_range(sbi, nid)))
sbi              2188 fs/f2fs/node.c 	err = __insert_free_nid(sbi, i, FREE_NID);
sbi              2191 fs/f2fs/node.c 		update_free_nid_bitmap(sbi, nid, ret, build);
sbi              2203 fs/f2fs/node.c static void remove_free_nid(struct f2fs_sb_info *sbi, nid_t nid)
sbi              2205 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2212 fs/f2fs/node.c 		__remove_free_nid(sbi, i, FREE_NID);
sbi              2221 fs/f2fs/node.c static int scan_nat_page(struct f2fs_sb_info *sbi,
sbi              2224 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2244 fs/f2fs/node.c 			add_free_nid(sbi, start_nid, true, true);
sbi              2246 fs/f2fs/node.c 			spin_lock(&NM_I(sbi)->nid_list_lock);
sbi              2247 fs/f2fs/node.c 			update_free_nid_bitmap(sbi, start_nid, false, true);
sbi              2248 fs/f2fs/node.c 			spin_unlock(&NM_I(sbi)->nid_list_lock);
sbi              2255 fs/f2fs/node.c static void scan_curseg_cache(struct f2fs_sb_info *sbi)
sbi              2257 fs/f2fs/node.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              2269 fs/f2fs/node.c 			add_free_nid(sbi, nid, true, false);
sbi              2271 fs/f2fs/node.c 			remove_free_nid(sbi, nid);
sbi              2276 fs/f2fs/node.c static void scan_free_nid_bits(struct f2fs_sb_info *sbi)
sbi              2278 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2296 fs/f2fs/node.c 			add_free_nid(sbi, nid, true, false);
sbi              2303 fs/f2fs/node.c 	scan_curseg_cache(sbi);
sbi              2308 fs/f2fs/node.c static int __f2fs_build_free_nids(struct f2fs_sb_info *sbi,
sbi              2311 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2322 fs/f2fs/node.c 	if (!sync && !f2fs_available_free_memory(sbi, FREE_NIDS))
sbi              2327 fs/f2fs/node.c 		scan_free_nid_bits(sbi);
sbi              2334 fs/f2fs/node.c 	f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nid), FREE_NID_PAGES,
sbi              2342 fs/f2fs/node.c 			struct page *page = get_current_nat_page(sbi, nid);
sbi              2347 fs/f2fs/node.c 				ret = scan_nat_page(sbi, page, nid);
sbi              2353 fs/f2fs/node.c 				f2fs_bug_on(sbi, !mount);
sbi              2354 fs/f2fs/node.c 				f2fs_err(sbi, "NAT is corrupt, run fsck to fix it");
sbi              2371 fs/f2fs/node.c 	scan_curseg_cache(sbi);
sbi              2375 fs/f2fs/node.c 	f2fs_ra_meta_pages(sbi, NAT_BLOCK_OFFSET(nm_i->next_scan_nid),
sbi              2381 fs/f2fs/node.c int f2fs_build_free_nids(struct f2fs_sb_info *sbi, bool sync, bool mount)
sbi              2385 fs/f2fs/node.c 	mutex_lock(&NM_I(sbi)->build_lock);
sbi              2386 fs/f2fs/node.c 	ret = __f2fs_build_free_nids(sbi, sync, mount);
sbi              2387 fs/f2fs/node.c 	mutex_unlock(&NM_I(sbi)->build_lock);
sbi              2397 fs/f2fs/node.c bool f2fs_alloc_nid(struct f2fs_sb_info *sbi, nid_t *nid)
sbi              2399 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2402 fs/f2fs/node.c 	if (time_to_inject(sbi, FAULT_ALLOC_NID)) {
sbi              2416 fs/f2fs/node.c 		f2fs_bug_on(sbi, list_empty(&nm_i->free_nid_list));
sbi              2421 fs/f2fs/node.c 		__move_free_nid(sbi, i, FREE_NID, PREALLOC_NID);
sbi              2424 fs/f2fs/node.c 		update_free_nid_bitmap(sbi, *nid, false, false);
sbi              2432 fs/f2fs/node.c 	if (!f2fs_build_free_nids(sbi, true, false))
sbi              2440 fs/f2fs/node.c void f2fs_alloc_nid_done(struct f2fs_sb_info *sbi, nid_t nid)
sbi              2442 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2447 fs/f2fs/node.c 	f2fs_bug_on(sbi, !i);
sbi              2448 fs/f2fs/node.c 	__remove_free_nid(sbi, i, PREALLOC_NID);
sbi              2457 fs/f2fs/node.c void f2fs_alloc_nid_failed(struct f2fs_sb_info *sbi, nid_t nid)
sbi              2459 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2468 fs/f2fs/node.c 	f2fs_bug_on(sbi, !i);
sbi              2470 fs/f2fs/node.c 	if (!f2fs_available_free_memory(sbi, FREE_NIDS)) {
sbi              2471 fs/f2fs/node.c 		__remove_free_nid(sbi, i, PREALLOC_NID);
sbi              2474 fs/f2fs/node.c 		__move_free_nid(sbi, i, PREALLOC_NID, FREE_NID);
sbi              2479 fs/f2fs/node.c 	update_free_nid_bitmap(sbi, nid, true, false);
sbi              2487 fs/f2fs/node.c int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink)
sbi              2489 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2505 fs/f2fs/node.c 		__remove_free_nid(sbi, i, FREE_NID);
sbi              2546 fs/f2fs/node.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2558 fs/f2fs/node.c 	err = f2fs_get_node_info(sbi, prev_xnid, &ni);
sbi              2562 fs/f2fs/node.c 	f2fs_invalidate_blocks(sbi, ni.blk_addr);
sbi              2563 fs/f2fs/node.c 	dec_valid_node_count(sbi, inode, false);
sbi              2564 fs/f2fs/node.c 	set_node_addr(sbi, &ni, NULL_ADDR, false);
sbi              2568 fs/f2fs/node.c 	if (!f2fs_alloc_nid(sbi, &new_xnid))
sbi              2574 fs/f2fs/node.c 		f2fs_alloc_nid_failed(sbi, new_xnid);
sbi              2578 fs/f2fs/node.c 	f2fs_alloc_nid_done(sbi, new_xnid);
sbi              2590 fs/f2fs/node.c int f2fs_recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
sbi              2598 fs/f2fs/node.c 	err = f2fs_get_node_info(sbi, ino, &old_ni);
sbi              2605 fs/f2fs/node.c 	ipage = f2fs_grab_cache_page(NODE_MAPPING(sbi), ino, false);
sbi              2612 fs/f2fs/node.c 	remove_free_nid(sbi, ino);
sbi              2631 fs/f2fs/node.c 		if (f2fs_sb_has_flexible_inline_xattr(sbi) &&
sbi              2636 fs/f2fs/node.c 		if (f2fs_sb_has_project_quota(sbi) &&
sbi              2641 fs/f2fs/node.c 		if (f2fs_sb_has_inode_crtime(sbi) &&
sbi              2652 fs/f2fs/node.c 	if (unlikely(inc_valid_node_count(sbi, NULL, true)))
sbi              2654 fs/f2fs/node.c 	set_node_addr(sbi, &new_ni, NEW_ADDR, false);
sbi              2655 fs/f2fs/node.c 	inc_valid_inode_count(sbi);
sbi              2661 fs/f2fs/node.c int f2fs_restore_node_summary(struct f2fs_sb_info *sbi,
sbi              2670 fs/f2fs/node.c 	last_offset = sbi->blocks_per_seg;
sbi              2671 fs/f2fs/node.c 	addr = START_BLOCK(sbi, segno);
sbi              2678 fs/f2fs/node.c 		f2fs_ra_meta_pages(sbi, addr, nrpages, META_POR, true);
sbi              2681 fs/f2fs/node.c 			struct page *page = f2fs_get_tmp_page(sbi, idx);
sbi              2694 fs/f2fs/node.c 		invalidate_mapping_pages(META_MAPPING(sbi), addr,
sbi              2700 fs/f2fs/node.c static void remove_nats_in_journal(struct f2fs_sb_info *sbi)
sbi              2702 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2703 fs/f2fs/node.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              2757 fs/f2fs/node.c static void __update_nat_bits(struct f2fs_sb_info *sbi, nid_t start_nid,
sbi              2760 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2766 fs/f2fs/node.c 	if (!enabled_nat_bits(sbi, NULL))
sbi              2790 fs/f2fs/node.c static int __flush_nat_entry_set(struct f2fs_sb_info *sbi,
sbi              2793 fs/f2fs/node.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              2806 fs/f2fs/node.c 	if (enabled_nat_bits(sbi, cpc) ||
sbi              2813 fs/f2fs/node.c 		page = get_next_nat_page(sbi, start_nid);
sbi              2818 fs/f2fs/node.c 		f2fs_bug_on(sbi, !nat_blk);
sbi              2827 fs/f2fs/node.c 		f2fs_bug_on(sbi, nat_get_blkaddr(ne) == NEW_ADDR);
sbi              2832 fs/f2fs/node.c 			f2fs_bug_on(sbi, offset < 0);
sbi              2840 fs/f2fs/node.c 		__clear_nat_cache_dirty(NM_I(sbi), set, ne);
sbi              2842 fs/f2fs/node.c 			add_free_nid(sbi, nid, false, true);
sbi              2844 fs/f2fs/node.c 			spin_lock(&NM_I(sbi)->nid_list_lock);
sbi              2845 fs/f2fs/node.c 			update_free_nid_bitmap(sbi, nid, false, false);
sbi              2846 fs/f2fs/node.c 			spin_unlock(&NM_I(sbi)->nid_list_lock);
sbi              2853 fs/f2fs/node.c 		__update_nat_bits(sbi, start_nid, page);
sbi              2859 fs/f2fs/node.c 		radix_tree_delete(&NM_I(sbi)->nat_set_root, set->set);
sbi              2868 fs/f2fs/node.c int f2fs_flush_nat_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi              2870 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2871 fs/f2fs/node.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              2881 fs/f2fs/node.c 	if (enabled_nat_bits(sbi, cpc)) {
sbi              2883 fs/f2fs/node.c 		remove_nats_in_journal(sbi);
sbi              2897 fs/f2fs/node.c 	if (enabled_nat_bits(sbi, cpc) ||
sbi              2899 fs/f2fs/node.c 		remove_nats_in_journal(sbi);
sbi              2912 fs/f2fs/node.c 		err = __flush_nat_entry_set(sbi, set, cpc);
sbi              2923 fs/f2fs/node.c static int __get_nat_bitmaps(struct f2fs_sb_info *sbi)
sbi              2925 fs/f2fs/node.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              2926 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2932 fs/f2fs/node.c 	if (!enabled_nat_bits(sbi, NULL))
sbi              2936 fs/f2fs/node.c 	nm_i->nat_bits = f2fs_kzalloc(sbi,
sbi              2941 fs/f2fs/node.c 	nat_bits_addr = __start_cp_addr(sbi) + sbi->blocks_per_seg -
sbi              2946 fs/f2fs/node.c 		page = f2fs_get_meta_page(sbi, nat_bits_addr++);
sbi              2957 fs/f2fs/node.c 		disable_nat_bits(sbi, true);
sbi              2964 fs/f2fs/node.c 	f2fs_notice(sbi, "Found nat_bits in checkpoint");
sbi              2968 fs/f2fs/node.c static inline void load_free_nid_bitmap(struct f2fs_sb_info *sbi)
sbi              2970 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              2974 fs/f2fs/node.c 	if (!enabled_nat_bits(sbi, NULL))
sbi              2987 fs/f2fs/node.c 		spin_lock(&NM_I(sbi)->nid_list_lock);
sbi              2989 fs/f2fs/node.c 			update_free_nid_bitmap(sbi, nid, true, true);
sbi              2990 fs/f2fs/node.c 		spin_unlock(&NM_I(sbi)->nid_list_lock);
sbi              3002 fs/f2fs/node.c static int init_node_manager(struct f2fs_sb_info *sbi)
sbi              3004 fs/f2fs/node.c 	struct f2fs_super_block *sb_raw = F2FS_RAW_SUPER(sbi);
sbi              3005 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              3018 fs/f2fs/node.c 	nm_i->available_nids = nm_i->max_nid - sbi->total_valid_node_count -
sbi              3038 fs/f2fs/node.c 	nm_i->next_scan_nid = le32_to_cpu(sbi->ckpt->next_free_nid);
sbi              3039 fs/f2fs/node.c 	nm_i->bitmap_size = __bitmap_size(sbi, NAT_BITMAP);
sbi              3040 fs/f2fs/node.c 	version_bitmap = __bitmap_ptr(sbi, NAT_BITMAP);
sbi              3049 fs/f2fs/node.c 	err = __get_nat_bitmaps(sbi);
sbi              3063 fs/f2fs/node.c static int init_free_nid_cache(struct f2fs_sb_info *sbi)
sbi              3065 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              3069 fs/f2fs/node.c 		f2fs_kzalloc(sbi, array_size(sizeof(unsigned char *),
sbi              3076 fs/f2fs/node.c 		nm_i->free_nid_bitmap[i] = f2fs_kvzalloc(sbi,
sbi              3082 fs/f2fs/node.c 	nm_i->nat_block_bitmap = f2fs_kvzalloc(sbi, nm_i->nat_blocks / 8,
sbi              3088 fs/f2fs/node.c 		f2fs_kvzalloc(sbi, array_size(sizeof(unsigned short),
sbi              3096 fs/f2fs/node.c int f2fs_build_node_manager(struct f2fs_sb_info *sbi)
sbi              3100 fs/f2fs/node.c 	sbi->nm_info = f2fs_kzalloc(sbi, sizeof(struct f2fs_nm_info),
sbi              3102 fs/f2fs/node.c 	if (!sbi->nm_info)
sbi              3105 fs/f2fs/node.c 	err = init_node_manager(sbi);
sbi              3109 fs/f2fs/node.c 	err = init_free_nid_cache(sbi);
sbi              3114 fs/f2fs/node.c 	load_free_nid_bitmap(sbi);
sbi              3116 fs/f2fs/node.c 	return f2fs_build_free_nids(sbi, true, true);
sbi              3119 fs/f2fs/node.c void f2fs_destroy_node_manager(struct f2fs_sb_info *sbi)
sbi              3121 fs/f2fs/node.c 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi              3134 fs/f2fs/node.c 		__remove_free_nid(sbi, i, FREE_NID);
sbi              3139 fs/f2fs/node.c 	f2fs_bug_on(sbi, nm_i->nid_cnt[FREE_NID]);
sbi              3140 fs/f2fs/node.c 	f2fs_bug_on(sbi, nm_i->nid_cnt[PREALLOC_NID]);
sbi              3141 fs/f2fs/node.c 	f2fs_bug_on(sbi, !list_empty(&nm_i->free_nid_list));
sbi              3159 fs/f2fs/node.c 	f2fs_bug_on(sbi, nm_i->nat_cnt);
sbi              3170 fs/f2fs/node.c 			f2fs_bug_on(sbi, !list_empty(&setvec[idx]->entry_list));
sbi              3192 fs/f2fs/node.c 	sbi->nm_info = NULL;
sbi               124 fs/f2fs/node.h static inline bool excess_dirty_nats(struct f2fs_sb_info *sbi)
sbi               126 fs/f2fs/node.h 	return NM_I(sbi)->dirty_nat_cnt >= NM_I(sbi)->max_nid *
sbi               127 fs/f2fs/node.h 					NM_I(sbi)->dirty_nats_ratio / 100;
sbi               130 fs/f2fs/node.h static inline bool excess_cached_nats(struct f2fs_sb_info *sbi)
sbi               132 fs/f2fs/node.h 	return NM_I(sbi)->nat_cnt >= DEF_NAT_CACHE_THRESHOLD;
sbi               135 fs/f2fs/node.h static inline bool excess_dirty_nodes(struct f2fs_sb_info *sbi)
sbi               137 fs/f2fs/node.h 	return get_pages(sbi, F2FS_DIRTY_NODES) >= sbi->blocks_per_seg * 8;
sbi               163 fs/f2fs/node.h static inline void next_free_nid(struct f2fs_sb_info *sbi, nid_t *nid)
sbi               165 fs/f2fs/node.h 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               181 fs/f2fs/node.h static inline void get_nat_bitmap(struct f2fs_sb_info *sbi, void *addr)
sbi               183 fs/f2fs/node.h 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               188 fs/f2fs/node.h 		f2fs_bug_on(sbi, 1);
sbi               193 fs/f2fs/node.h static inline pgoff_t current_nat_addr(struct f2fs_sb_info *sbi, nid_t start)
sbi               195 fs/f2fs/node.h 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               208 fs/f2fs/node.h 		(block_off & (sbi->blocks_per_seg - 1)));
sbi               211 fs/f2fs/node.h 		block_addr += sbi->blocks_per_seg;
sbi               216 fs/f2fs/node.h static inline pgoff_t next_nat_addr(struct f2fs_sb_info *sbi,
sbi               219 fs/f2fs/node.h 	struct f2fs_nm_info *nm_i = NM_I(sbi);
sbi               222 fs/f2fs/node.h 	block_addr ^= 1 << sbi->log_blocks_per_seg;
sbi                47 fs/f2fs/recovery.c bool f2fs_space_for_roll_forward(struct f2fs_sb_info *sbi)
sbi                49 fs/f2fs/recovery.c 	s64 nalloc = percpu_counter_sum_positive(&sbi->alloc_valid_block_count);
sbi                51 fs/f2fs/recovery.c 	if (sbi->last_valid_block_count + nalloc > sbi->user_block_count)
sbi                68 fs/f2fs/recovery.c static struct fsync_inode_entry *add_fsync_inode(struct f2fs_sb_info *sbi,
sbi                75 fs/f2fs/recovery.c 	inode = f2fs_iget_retry(sbi->sb, ino);
sbi               299 fs/f2fs/recovery.c static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head,
sbi               306 fs/f2fs/recovery.c 	unsigned int free_blocks = MAIN_SEGS(sbi) * sbi->blocks_per_seg -
sbi               307 fs/f2fs/recovery.c 						valid_user_blocks(sbi);
sbi               311 fs/f2fs/recovery.c 	curseg = CURSEG_I(sbi, CURSEG_WARM_NODE);
sbi               312 fs/f2fs/recovery.c 	blkaddr = NEXT_FREE_BLKADDR(sbi, curseg);
sbi               317 fs/f2fs/recovery.c 		if (!f2fs_is_valid_blkaddr(sbi, blkaddr, META_POR))
sbi               320 fs/f2fs/recovery.c 		page = f2fs_get_tmp_page(sbi, blkaddr);
sbi               340 fs/f2fs/recovery.c 				err = f2fs_recover_inode_page(sbi, page);
sbi               352 fs/f2fs/recovery.c 			entry = add_fsync_inode(sbi, head, ino_of_node(page),
sbi               372 fs/f2fs/recovery.c 			f2fs_notice(sbi, "%s: detect looped node chain, blkaddr:%u, next:%u",
sbi               384 fs/f2fs/recovery.c 		f2fs_ra_meta_pages_cond(sbi, blkaddr);
sbi               397 fs/f2fs/recovery.c static int check_index_in_prev_nodes(struct f2fs_sb_info *sbi,
sbi               401 fs/f2fs/recovery.c 	unsigned int segno = GET_SEGNO(sbi, blkaddr);
sbi               402 fs/f2fs/recovery.c 	unsigned short blkoff = GET_BLKOFF_FROM_SEG0(sbi, blkaddr);
sbi               413 fs/f2fs/recovery.c 	sentry = get_seg_entry(sbi, segno);
sbi               419 fs/f2fs/recovery.c 		struct curseg_info *curseg = CURSEG_I(sbi, i);
sbi               426 fs/f2fs/recovery.c 	sum_page = f2fs_get_sum_page(sbi, segno);
sbi               448 fs/f2fs/recovery.c 	node_page = f2fs_get_node_page(sbi, nid);
sbi               460 fs/f2fs/recovery.c 		inode = f2fs_iget_retry(sbi->sb, ino);
sbi               507 fs/f2fs/recovery.c static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode,
sbi               546 fs/f2fs/recovery.c 	err = f2fs_get_node_info(sbi, dn.nid, &ni);
sbi               550 fs/f2fs/recovery.c 	f2fs_bug_on(sbi, ni.ino != ino_of_node(page));
sbi               553 fs/f2fs/recovery.c 		f2fs_warn(sbi, "Inconsistent ofs_of_node, ino:%lu, ofs:%u, %u",
sbi               567 fs/f2fs/recovery.c 			!f2fs_is_valid_blkaddr(sbi, src, META_POR)) {
sbi               573 fs/f2fs/recovery.c 			!f2fs_is_valid_blkaddr(sbi, dest, META_POR)) {
sbi               604 fs/f2fs/recovery.c 		if (f2fs_is_valid_blkaddr(sbi, dest, META_POR)) {
sbi               612 fs/f2fs/recovery.c 				f2fs_bug_on(sbi, err);
sbi               618 fs/f2fs/recovery.c 			err = check_index_in_prev_nodes(sbi, dest, &dn);
sbi               628 fs/f2fs/recovery.c 			f2fs_replace_block(sbi, &dn, src, dest,
sbi               641 fs/f2fs/recovery.c 	f2fs_notice(sbi, "recover_data: ino = %lx (i_size: %s) recovered = %d, err = %d",
sbi               647 fs/f2fs/recovery.c static int recover_data(struct f2fs_sb_info *sbi, struct list_head *inode_list,
sbi               656 fs/f2fs/recovery.c 	curseg = CURSEG_I(sbi, CURSEG_WARM_NODE);
sbi               657 fs/f2fs/recovery.c 	blkaddr = NEXT_FREE_BLKADDR(sbi, curseg);
sbi               662 fs/f2fs/recovery.c 		if (!f2fs_is_valid_blkaddr(sbi, blkaddr, META_POR))
sbi               665 fs/f2fs/recovery.c 		f2fs_ra_meta_pages_cond(sbi, blkaddr);
sbi               667 fs/f2fs/recovery.c 		page = f2fs_get_tmp_page(sbi, blkaddr);
sbi               700 fs/f2fs/recovery.c 		err = do_recover_data(sbi, entry->inode, page);
sbi               714 fs/f2fs/recovery.c 		f2fs_allocate_new_segments(sbi);
sbi               718 fs/f2fs/recovery.c int f2fs_recover_fsync_data(struct f2fs_sb_info *sbi, bool check_only)
sbi               724 fs/f2fs/recovery.c 	unsigned long s_flags = sbi->sb->s_flags;
sbi               731 fs/f2fs/recovery.c 		f2fs_info(sbi, "recover fsync data on readonly fs");
sbi               732 fs/f2fs/recovery.c 		sbi->sb->s_flags &= ~SB_RDONLY;
sbi               737 fs/f2fs/recovery.c 	sbi->sb->s_flags |= SB_ACTIVE;
sbi               739 fs/f2fs/recovery.c 	quota_enabled = f2fs_enable_quota_files(sbi, s_flags & SB_RDONLY);
sbi               754 fs/f2fs/recovery.c 	mutex_lock(&sbi->cp_mutex);
sbi               757 fs/f2fs/recovery.c 	err = find_fsync_dnodes(sbi, &inode_list, check_only);
sbi               769 fs/f2fs/recovery.c 	err = recover_data(sbi, &inode_list, &tmp_inode_list, &dir_list);
sbi               771 fs/f2fs/recovery.c 		f2fs_bug_on(sbi, !list_empty(&inode_list));
sbi               774 fs/f2fs/recovery.c 		sbi->sb->s_flags = s_flags;
sbi               781 fs/f2fs/recovery.c 	truncate_inode_pages_range(META_MAPPING(sbi),
sbi               782 fs/f2fs/recovery.c 			(loff_t)MAIN_BLKADDR(sbi) << PAGE_SHIFT, -1);
sbi               785 fs/f2fs/recovery.c 		truncate_inode_pages_final(NODE_MAPPING(sbi));
sbi               786 fs/f2fs/recovery.c 		truncate_inode_pages_final(META_MAPPING(sbi));
sbi               788 fs/f2fs/recovery.c 		clear_sbi_flag(sbi, SBI_POR_DOING);
sbi               790 fs/f2fs/recovery.c 	mutex_unlock(&sbi->cp_mutex);
sbi               796 fs/f2fs/recovery.c 		set_sbi_flag(sbi, SBI_IS_RECOVERED);
sbi               802 fs/f2fs/recovery.c 			err = f2fs_write_checkpoint(sbi, &cpc);
sbi               811 fs/f2fs/recovery.c 		f2fs_quota_off_umount(sbi->sb);
sbi               813 fs/f2fs/recovery.c 	sbi->sb->s_flags = s_flags; /* Restore SB_RDONLY status */
sbi               169 fs/f2fs/segment.c bool f2fs_need_SSR(struct f2fs_sb_info *sbi)
sbi               171 fs/f2fs/segment.c 	int node_secs = get_blocktype_secs(sbi, F2FS_DIRTY_NODES);
sbi               172 fs/f2fs/segment.c 	int dent_secs = get_blocktype_secs(sbi, F2FS_DIRTY_DENTS);
sbi               173 fs/f2fs/segment.c 	int imeta_secs = get_blocktype_secs(sbi, F2FS_DIRTY_IMETA);
sbi               175 fs/f2fs/segment.c 	if (test_opt(sbi, LFS))
sbi               177 fs/f2fs/segment.c 	if (sbi->gc_mode == GC_URGENT)
sbi               179 fs/f2fs/segment.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi               182 fs/f2fs/segment.c 	return free_sections(sbi) <= (node_secs + 2 * dent_secs + imeta_secs +
sbi               183 fs/f2fs/segment.c 			SM_I(sbi)->min_ssr_sections + reserved_sections(sbi));
sbi               214 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               256 fs/f2fs/segment.c 			err = f2fs_get_node_info(sbi, dn.nid, &ni);
sbi               263 fs/f2fs/segment.c 				f2fs_invalidate_blocks(sbi, dn.data_blkaddr);
sbi               266 fs/f2fs/segment.c 				f2fs_replace_block(sbi, &dn, dn.data_blkaddr,
sbi               286 fs/f2fs/segment.c void f2fs_drop_inmem_pages_all(struct f2fs_sb_info *sbi, bool gc_failure)
sbi               288 fs/f2fs/segment.c 	struct list_head *head = &sbi->inode_list[ATOMIC_FILE];
sbi               291 fs/f2fs/segment.c 	unsigned int count = sbi->atomic_files;
sbi               294 fs/f2fs/segment.c 	spin_lock(&sbi->inode_lock[ATOMIC_FILE]);
sbi               296 fs/f2fs/segment.c 		spin_unlock(&sbi->inode_lock[ATOMIC_FILE]);
sbi               303 fs/f2fs/segment.c 	spin_unlock(&sbi->inode_lock[ATOMIC_FILE]);
sbi               326 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               339 fs/f2fs/segment.c 	spin_lock(&sbi->inode_lock[ATOMIC_FILE]);
sbi               344 fs/f2fs/segment.c 		sbi->atomic_files--;
sbi               346 fs/f2fs/segment.c 	spin_unlock(&sbi->inode_lock[ATOMIC_FILE]);
sbi               352 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               356 fs/f2fs/segment.c 	f2fs_bug_on(sbi, !IS_ATOMIC_WRITTEN_PAGE(page));
sbi               364 fs/f2fs/segment.c 	f2fs_bug_on(sbi, list_empty(head) || cur->page != page);
sbi               368 fs/f2fs/segment.c 	dec_page_count(sbi, F2FS_INMEM_PAGES);
sbi               380 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               384 fs/f2fs/segment.c 		.sbi = sbi,
sbi               435 fs/f2fs/segment.c 		f2fs_submit_merged_write_cond(sbi, inode, NULL, 0, DATA);
sbi               462 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               466 fs/f2fs/segment.c 	f2fs_balance_fs(sbi, true);
sbi               470 fs/f2fs/segment.c 	f2fs_lock_op(sbi);
sbi               479 fs/f2fs/segment.c 	f2fs_unlock_op(sbi);
sbi               489 fs/f2fs/segment.c void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need)
sbi               491 fs/f2fs/segment.c 	if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
sbi               493 fs/f2fs/segment.c 		f2fs_stop_checkpoint(sbi, false);
sbi               497 fs/f2fs/segment.c 	if (need && excess_cached_nats(sbi))
sbi               498 fs/f2fs/segment.c 		f2fs_balance_fs_bg(sbi);
sbi               500 fs/f2fs/segment.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               507 fs/f2fs/segment.c 	if (has_not_enough_free_secs(sbi, 0, 0)) {
sbi               508 fs/f2fs/segment.c 		mutex_lock(&sbi->gc_mutex);
sbi               509 fs/f2fs/segment.c 		f2fs_gc(sbi, false, false, NULL_SEGNO);
sbi               513 fs/f2fs/segment.c void f2fs_balance_fs_bg(struct f2fs_sb_info *sbi)
sbi               515 fs/f2fs/segment.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi               519 fs/f2fs/segment.c 	if (!f2fs_available_free_memory(sbi, EXTENT_CACHE))
sbi               520 fs/f2fs/segment.c 		f2fs_shrink_extent_tree(sbi, EXTENT_CACHE_SHRINK_NUMBER);
sbi               523 fs/f2fs/segment.c 	if (!f2fs_available_free_memory(sbi, NAT_ENTRIES))
sbi               524 fs/f2fs/segment.c 		f2fs_try_to_free_nats(sbi, NAT_ENTRY_PER_BLOCK);
sbi               526 fs/f2fs/segment.c 	if (!f2fs_available_free_memory(sbi, FREE_NIDS))
sbi               527 fs/f2fs/segment.c 		f2fs_try_to_free_nids(sbi, MAX_FREE_NIDS);
sbi               529 fs/f2fs/segment.c 		f2fs_build_free_nids(sbi, false, false);
sbi               531 fs/f2fs/segment.c 	if (!is_idle(sbi, REQ_TIME) &&
sbi               532 fs/f2fs/segment.c 		(!excess_dirty_nats(sbi) && !excess_dirty_nodes(sbi)))
sbi               536 fs/f2fs/segment.c 	if (!f2fs_available_free_memory(sbi, NAT_ENTRIES) ||
sbi               537 fs/f2fs/segment.c 			!f2fs_available_free_memory(sbi, INO_ENTRIES) ||
sbi               538 fs/f2fs/segment.c 			excess_prefree_segs(sbi) ||
sbi               539 fs/f2fs/segment.c 			excess_dirty_nats(sbi) ||
sbi               540 fs/f2fs/segment.c 			excess_dirty_nodes(sbi) ||
sbi               541 fs/f2fs/segment.c 			f2fs_time_over(sbi, CP_TIME)) {
sbi               542 fs/f2fs/segment.c 		if (test_opt(sbi, DATA_FLUSH)) {
sbi               545 fs/f2fs/segment.c 			mutex_lock(&sbi->flush_lock);
sbi               548 fs/f2fs/segment.c 			f2fs_sync_dirty_inodes(sbi, FILE_INODE);
sbi               551 fs/f2fs/segment.c 			mutex_unlock(&sbi->flush_lock);
sbi               553 fs/f2fs/segment.c 		f2fs_sync_fs(sbi->sb, true);
sbi               554 fs/f2fs/segment.c 		stat_inc_bg_cp_count(sbi->stat_info);
sbi               558 fs/f2fs/segment.c static int __submit_flush_wait(struct f2fs_sb_info *sbi,
sbi               564 fs/f2fs/segment.c 	bio = f2fs_bio_alloc(sbi, 0, false);
sbi               573 fs/f2fs/segment.c 	trace_f2fs_issue_flush(bdev, test_opt(sbi, NOBARRIER),
sbi               574 fs/f2fs/segment.c 				test_opt(sbi, FLUSH_MERGE), ret);
sbi               578 fs/f2fs/segment.c static int submit_flush_wait(struct f2fs_sb_info *sbi, nid_t ino)
sbi               583 fs/f2fs/segment.c 	if (!f2fs_is_multi_device(sbi))
sbi               584 fs/f2fs/segment.c 		return __submit_flush_wait(sbi, sbi->sb->s_bdev);
sbi               586 fs/f2fs/segment.c 	for (i = 0; i < sbi->s_ndevs; i++) {
sbi               587 fs/f2fs/segment.c 		if (!f2fs_is_dirty_device(sbi, ino, i, FLUSH_INO))
sbi               589 fs/f2fs/segment.c 		ret = __submit_flush_wait(sbi, FDEV(i).bdev);
sbi               598 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = data;
sbi               599 fs/f2fs/segment.c 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
sbi               605 fs/f2fs/segment.c 	sb_start_intwrite(sbi->sb);
sbi               616 fs/f2fs/segment.c 		ret = submit_flush_wait(sbi, cmd->ino);
sbi               627 fs/f2fs/segment.c 	sb_end_intwrite(sbi->sb);
sbi               634 fs/f2fs/segment.c int f2fs_issue_flush(struct f2fs_sb_info *sbi, nid_t ino)
sbi               636 fs/f2fs/segment.c 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
sbi               640 fs/f2fs/segment.c 	if (test_opt(sbi, NOBARRIER))
sbi               643 fs/f2fs/segment.c 	if (!test_opt(sbi, FLUSH_MERGE)) {
sbi               645 fs/f2fs/segment.c 		ret = submit_flush_wait(sbi, ino);
sbi               652 fs/f2fs/segment.c 	    f2fs_is_multi_device(sbi)) {
sbi               653 fs/f2fs/segment.c 		ret = submit_flush_wait(sbi, ino);
sbi               684 fs/f2fs/segment.c 			ret = submit_flush_wait(sbi, ino);
sbi               701 fs/f2fs/segment.c int f2fs_create_flush_cmd_control(struct f2fs_sb_info *sbi)
sbi               703 fs/f2fs/segment.c 	dev_t dev = sbi->sb->s_bdev->bd_dev;
sbi               707 fs/f2fs/segment.c 	if (SM_I(sbi)->fcc_info) {
sbi               708 fs/f2fs/segment.c 		fcc = SM_I(sbi)->fcc_info;
sbi               714 fs/f2fs/segment.c 	fcc = f2fs_kzalloc(sbi, sizeof(struct flush_cmd_control), GFP_KERNEL);
sbi               721 fs/f2fs/segment.c 	SM_I(sbi)->fcc_info = fcc;
sbi               722 fs/f2fs/segment.c 	if (!test_opt(sbi, FLUSH_MERGE))
sbi               726 fs/f2fs/segment.c 	fcc->f2fs_issue_flush = kthread_run(issue_flush_thread, sbi,
sbi               731 fs/f2fs/segment.c 		SM_I(sbi)->fcc_info = NULL;
sbi               738 fs/f2fs/segment.c void f2fs_destroy_flush_cmd_control(struct f2fs_sb_info *sbi, bool free)
sbi               740 fs/f2fs/segment.c 	struct flush_cmd_control *fcc = SM_I(sbi)->fcc_info;
sbi               750 fs/f2fs/segment.c 		SM_I(sbi)->fcc_info = NULL;
sbi               754 fs/f2fs/segment.c int f2fs_flush_device_cache(struct f2fs_sb_info *sbi)
sbi               758 fs/f2fs/segment.c 	if (!f2fs_is_multi_device(sbi))
sbi               761 fs/f2fs/segment.c 	for (i = 1; i < sbi->s_ndevs; i++) {
sbi               762 fs/f2fs/segment.c 		if (!f2fs_test_bit(i, (char *)&sbi->dirty_device))
sbi               764 fs/f2fs/segment.c 		ret = __submit_flush_wait(sbi, FDEV(i).bdev);
sbi               768 fs/f2fs/segment.c 		spin_lock(&sbi->dev_lock);
sbi               769 fs/f2fs/segment.c 		f2fs_clear_bit(i, (char *)&sbi->dirty_device);
sbi               770 fs/f2fs/segment.c 		spin_unlock(&sbi->dev_lock);
sbi               776 fs/f2fs/segment.c static void __locate_dirty_segment(struct f2fs_sb_info *sbi, unsigned int segno,
sbi               779 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               782 fs/f2fs/segment.c 	if (IS_CURSEG(sbi, segno))
sbi               789 fs/f2fs/segment.c 		struct seg_entry *sentry = get_seg_entry(sbi, segno);
sbi               793 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi               801 fs/f2fs/segment.c static void __remove_dirty_segment(struct f2fs_sb_info *sbi, unsigned int segno,
sbi               804 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               810 fs/f2fs/segment.c 		struct seg_entry *sentry = get_seg_entry(sbi, segno);
sbi               816 fs/f2fs/segment.c 		if (get_valid_blocks(sbi, segno, true) == 0) {
sbi               817 fs/f2fs/segment.c 			clear_bit(GET_SEC_FROM_SEG(sbi, segno),
sbi               820 fs/f2fs/segment.c 			clear_bit(segno, SIT_I(sbi)->invalid_segmap);
sbi               831 fs/f2fs/segment.c static void locate_dirty_segment(struct f2fs_sb_info *sbi, unsigned int segno)
sbi               833 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               836 fs/f2fs/segment.c 	if (segno == NULL_SEGNO || IS_CURSEG(sbi, segno))
sbi               841 fs/f2fs/segment.c 	valid_blocks = get_valid_blocks(sbi, segno, false);
sbi               842 fs/f2fs/segment.c 	ckpt_valid_blocks = get_ckpt_valid_blocks(sbi, segno);
sbi               844 fs/f2fs/segment.c 	if (valid_blocks == 0 && (!is_sbi_flag_set(sbi, SBI_CP_DISABLED) ||
sbi               845 fs/f2fs/segment.c 				ckpt_valid_blocks == sbi->blocks_per_seg)) {
sbi               846 fs/f2fs/segment.c 		__locate_dirty_segment(sbi, segno, PRE);
sbi               847 fs/f2fs/segment.c 		__remove_dirty_segment(sbi, segno, DIRTY);
sbi               848 fs/f2fs/segment.c 	} else if (valid_blocks < sbi->blocks_per_seg) {
sbi               849 fs/f2fs/segment.c 		__locate_dirty_segment(sbi, segno, DIRTY);
sbi               852 fs/f2fs/segment.c 		__remove_dirty_segment(sbi, segno, DIRTY);
sbi               859 fs/f2fs/segment.c void f2fs_dirty_to_prefree(struct f2fs_sb_info *sbi)
sbi               861 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               865 fs/f2fs/segment.c 	for_each_set_bit(segno, dirty_i->dirty_segmap[DIRTY], MAIN_SEGS(sbi)) {
sbi               866 fs/f2fs/segment.c 		if (get_valid_blocks(sbi, segno, false))
sbi               868 fs/f2fs/segment.c 		if (IS_CURSEG(sbi, segno))
sbi               870 fs/f2fs/segment.c 		__locate_dirty_segment(sbi, segno, PRE);
sbi               871 fs/f2fs/segment.c 		__remove_dirty_segment(sbi, segno, DIRTY);
sbi               876 fs/f2fs/segment.c block_t f2fs_get_unusable_blocks(struct f2fs_sb_info *sbi)
sbi               879 fs/f2fs/segment.c 		(overprovision_segments(sbi) - reserved_segments(sbi));
sbi               880 fs/f2fs/segment.c 	block_t ovp_holes = ovp_hole_segs << sbi->log_blocks_per_seg;
sbi               881 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               888 fs/f2fs/segment.c 	for_each_set_bit(segno, dirty_i->dirty_segmap[DIRTY], MAIN_SEGS(sbi)) {
sbi               889 fs/f2fs/segment.c 		se = get_seg_entry(sbi, segno);
sbi               891 fs/f2fs/segment.c 			holes[NODE] += sbi->blocks_per_seg - se->valid_blocks;
sbi               893 fs/f2fs/segment.c 			holes[DATA] += sbi->blocks_per_seg - se->valid_blocks;
sbi               903 fs/f2fs/segment.c int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable)
sbi               906 fs/f2fs/segment.c 		(overprovision_segments(sbi) - reserved_segments(sbi));
sbi               907 fs/f2fs/segment.c 	if (unusable > F2FS_OPTION(sbi).unusable_cap)
sbi               909 fs/f2fs/segment.c 	if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK) &&
sbi               910 fs/f2fs/segment.c 		dirty_segments(sbi) > ovp_hole_segs)
sbi               916 fs/f2fs/segment.c static unsigned int get_free_segment(struct f2fs_sb_info *sbi)
sbi               918 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               922 fs/f2fs/segment.c 	for_each_set_bit(segno, dirty_i->dirty_segmap[DIRTY], MAIN_SEGS(sbi)) {
sbi               923 fs/f2fs/segment.c 		if (get_valid_blocks(sbi, segno, false))
sbi               925 fs/f2fs/segment.c 		if (get_ckpt_valid_blocks(sbi, segno))
sbi               934 fs/f2fs/segment.c static struct discard_cmd *__create_discard_cmd(struct f2fs_sb_info *sbi,
sbi               938 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi               942 fs/f2fs/segment.c 	f2fs_bug_on(sbi, !len);
sbi               966 fs/f2fs/segment.c static struct discard_cmd *__attach_discard_cmd(struct f2fs_sb_info *sbi,
sbi               972 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi               975 fs/f2fs/segment.c 	dc = __create_discard_cmd(sbi, bdev, lstart, start, len);
sbi               998 fs/f2fs/segment.c static void __remove_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1001 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1013 fs/f2fs/segment.c 	f2fs_bug_on(sbi, dc->ref);
sbi              1042 fs/f2fs/segment.c static void __check_sit_bitmap(struct f2fs_sb_info *sbi,
sbi              1049 fs/f2fs/segment.c 	unsigned long offset, size, max_blocks = sbi->blocks_per_seg;
sbi              1053 fs/f2fs/segment.c 		segno = GET_SEGNO(sbi, blk);
sbi              1054 fs/f2fs/segment.c 		sentry = get_seg_entry(sbi, segno);
sbi              1055 fs/f2fs/segment.c 		offset = GET_BLKOFF_FROM_SEG0(sbi, blk);
sbi              1057 fs/f2fs/segment.c 		if (end < START_BLOCK(sbi, segno + 1))
sbi              1058 fs/f2fs/segment.c 			size = GET_BLKOFF_FROM_SEG0(sbi, end);
sbi              1063 fs/f2fs/segment.c 		f2fs_bug_on(sbi, offset != size);
sbi              1064 fs/f2fs/segment.c 		blk = START_BLOCK(sbi, segno + 1);
sbi              1069 fs/f2fs/segment.c static void __init_discard_policy(struct f2fs_sb_info *sbi,
sbi              1090 fs/f2fs/segment.c 		if (utilization(sbi) > DEF_DISCARD_URGENT_UTIL) {
sbi              1109 fs/f2fs/segment.c static void __update_discard_tree_range(struct f2fs_sb_info *sbi,
sbi              1113 fs/f2fs/segment.c static int __submit_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1122 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1132 fs/f2fs/segment.c 	if (is_sbi_flag_set(sbi, SBI_NEED_FSCK))
sbi              1160 fs/f2fs/segment.c 		if (time_to_inject(sbi, FAULT_DISCARD)) {
sbi              1179 fs/f2fs/segment.c 		f2fs_bug_on(sbi, !bio);
sbi              1198 fs/f2fs/segment.c 		__check_sit_bitmap(sbi, lstart, lstart + len);
sbi              1207 fs/f2fs/segment.c 		f2fs_update_iostat(sbi, FS_DISCARD, 1);
sbi              1216 fs/f2fs/segment.c 		__update_discard_tree_range(sbi, bdev, lstart, start, len);
sbi              1220 fs/f2fs/segment.c static struct discard_cmd *__insert_discard_tree(struct f2fs_sb_info *sbi,
sbi              1226 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1238 fs/f2fs/segment.c 	p = f2fs_lookup_rb_tree_for_insert(sbi, &dcc->root, &parent,
sbi              1241 fs/f2fs/segment.c 	dc = __attach_discard_cmd(sbi, bdev, lstart, start, len, parent,
sbi              1255 fs/f2fs/segment.c static void __punch_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1258 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1263 fs/f2fs/segment.c 		__remove_discard_cmd(sbi, dc);
sbi              1278 fs/f2fs/segment.c 			__insert_discard_tree(sbi, dc->bdev, blkaddr + 1,
sbi              1292 fs/f2fs/segment.c static void __update_discard_tree_range(struct f2fs_sb_info *sbi,
sbi              1296 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1365 fs/f2fs/segment.c 				__remove_discard_cmd(sbi, tdc);
sbi              1370 fs/f2fs/segment.c 			__insert_discard_tree(sbi, bdev, di.lstart, di.start,
sbi              1383 fs/f2fs/segment.c static int __queue_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1393 fs/f2fs/segment.c 	if (f2fs_is_multi_device(sbi)) {
sbi              1394 fs/f2fs/segment.c 		int devi = f2fs_target_device_index(sbi, blkstart);
sbi              1398 fs/f2fs/segment.c 	mutex_lock(&SM_I(sbi)->dcc_info->cmd_lock);
sbi              1399 fs/f2fs/segment.c 	__update_discard_tree_range(sbi, bdev, lblkstart, blkstart, blklen);
sbi              1400 fs/f2fs/segment.c 	mutex_unlock(&SM_I(sbi)->dcc_info->cmd_lock);
sbi              1404 fs/f2fs/segment.c static unsigned int __issue_discard_cmd_orderly(struct f2fs_sb_info *sbi,
sbi              1407 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1434 fs/f2fs/segment.c 		if (dpolicy->io_aware && !is_idle(sbi, DISCARD_TIME)) {
sbi              1440 fs/f2fs/segment.c 		err = __submit_discard_cmd(sbi, dpolicy, dc, &issued);
sbi              1447 fs/f2fs/segment.c 			__remove_discard_cmd(sbi, dc);
sbi              1464 fs/f2fs/segment.c static int __issue_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1467 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1475 fs/f2fs/segment.c 		f2fs_update_time(sbi, dpolicy->timeout);
sbi              1479 fs/f2fs/segment.c 				f2fs_time_over(sbi, dpolicy->timeout))
sbi              1486 fs/f2fs/segment.c 			return __issue_discard_cmd_orderly(sbi, dpolicy);
sbi              1494 fs/f2fs/segment.c 			f2fs_bug_on(sbi, !f2fs_check_rb_tree_consistence(sbi,
sbi              1498 fs/f2fs/segment.c 			f2fs_bug_on(sbi, dc->state != D_PREP);
sbi              1501 fs/f2fs/segment.c 				f2fs_time_over(sbi, dpolicy->timeout))
sbi              1505 fs/f2fs/segment.c 						!is_idle(sbi, DISCARD_TIME)) {
sbi              1510 fs/f2fs/segment.c 			__submit_discard_cmd(sbi, dpolicy, dc, &issued);
sbi              1529 fs/f2fs/segment.c static bool __drop_discard_cmd(struct f2fs_sb_info *sbi)
sbi              1531 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1541 fs/f2fs/segment.c 			f2fs_bug_on(sbi, dc->state != D_PREP);
sbi              1542 fs/f2fs/segment.c 			__remove_discard_cmd(sbi, dc);
sbi              1551 fs/f2fs/segment.c void f2fs_drop_discard_cmd(struct f2fs_sb_info *sbi)
sbi              1553 fs/f2fs/segment.c 	__drop_discard_cmd(sbi);
sbi              1556 fs/f2fs/segment.c static unsigned int __wait_one_discard_bio(struct f2fs_sb_info *sbi,
sbi              1559 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1564 fs/f2fs/segment.c 	f2fs_bug_on(sbi, dc->state != D_DONE);
sbi              1569 fs/f2fs/segment.c 		__remove_discard_cmd(sbi, dc);
sbi              1576 fs/f2fs/segment.c static unsigned int __wait_discard_cmd_range(struct f2fs_sb_info *sbi,
sbi              1580 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1600 fs/f2fs/segment.c 			__remove_discard_cmd(sbi, dc);
sbi              1610 fs/f2fs/segment.c 		trimmed += __wait_one_discard_bio(sbi, dc);
sbi              1617 fs/f2fs/segment.c static unsigned int __wait_all_discard_cmd(struct f2fs_sb_info *sbi,
sbi              1624 fs/f2fs/segment.c 		return __wait_discard_cmd_range(sbi, dpolicy, 0, UINT_MAX);
sbi              1627 fs/f2fs/segment.c 	__init_discard_policy(sbi, &dp, DPOLICY_FSTRIM, 1);
sbi              1628 fs/f2fs/segment.c 	discard_blks = __wait_discard_cmd_range(sbi, &dp, 0, UINT_MAX);
sbi              1629 fs/f2fs/segment.c 	__init_discard_policy(sbi, &dp, DPOLICY_UMOUNT, 1);
sbi              1630 fs/f2fs/segment.c 	discard_blks += __wait_discard_cmd_range(sbi, &dp, 0, UINT_MAX);
sbi              1636 fs/f2fs/segment.c static void f2fs_wait_discard_bio(struct f2fs_sb_info *sbi, block_t blkaddr)
sbi              1638 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1647 fs/f2fs/segment.c 			__punch_discard_cmd(sbi, dc, blkaddr);
sbi              1656 fs/f2fs/segment.c 		__wait_one_discard_bio(sbi, dc);
sbi              1659 fs/f2fs/segment.c void f2fs_stop_discard_thread(struct f2fs_sb_info *sbi)
sbi              1661 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1672 fs/f2fs/segment.c bool f2fs_issue_discard_timeout(struct f2fs_sb_info *sbi)
sbi              1674 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1678 fs/f2fs/segment.c 	__init_discard_policy(sbi, &dpolicy, DPOLICY_UMOUNT,
sbi              1681 fs/f2fs/segment.c 	__issue_discard_cmd(sbi, &dpolicy);
sbi              1682 fs/f2fs/segment.c 	dropped = __drop_discard_cmd(sbi);
sbi              1685 fs/f2fs/segment.c 	__wait_all_discard_cmd(sbi, NULL);
sbi              1687 fs/f2fs/segment.c 	f2fs_bug_on(sbi, atomic_read(&dcc->discard_cmd_cnt));
sbi              1693 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = data;
sbi              1694 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1703 fs/f2fs/segment.c 		__init_discard_policy(sbi, &dpolicy, DPOLICY_BG,
sbi              1716 fs/f2fs/segment.c 			__wait_all_discard_cmd(sbi, NULL);
sbi              1720 fs/f2fs/segment.c 		if (f2fs_readonly(sbi->sb))
sbi              1724 fs/f2fs/segment.c 		if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
sbi              1729 fs/f2fs/segment.c 		if (sbi->gc_mode == GC_URGENT)
sbi              1730 fs/f2fs/segment.c 			__init_discard_policy(sbi, &dpolicy, DPOLICY_FORCE, 1);
sbi              1732 fs/f2fs/segment.c 		sb_start_intwrite(sbi->sb);
sbi              1734 fs/f2fs/segment.c 		issued = __issue_discard_cmd(sbi, &dpolicy);
sbi              1736 fs/f2fs/segment.c 			__wait_all_discard_cmd(sbi, &dpolicy);
sbi              1739 fs/f2fs/segment.c 			wait_ms = f2fs_time_to_wait(sbi, DISCARD_TIME);
sbi              1746 fs/f2fs/segment.c 		sb_end_intwrite(sbi->sb);
sbi              1753 fs/f2fs/segment.c static int __f2fs_issue_discard_zone(struct f2fs_sb_info *sbi,
sbi              1760 fs/f2fs/segment.c 	if (f2fs_is_multi_device(sbi)) {
sbi              1761 fs/f2fs/segment.c 		devi = f2fs_target_device_index(sbi, blkstart);
sbi              1764 fs/f2fs/segment.c 			f2fs_err(sbi, "Invalid block %x", blkstart);
sbi              1771 fs/f2fs/segment.c 	if (f2fs_blkz_is_seq(sbi, devi, blkstart)) {
sbi              1777 fs/f2fs/segment.c 			f2fs_err(sbi, "(%d) %s: Unaligned zone reset attempted (block %x + %x)",
sbi              1778 fs/f2fs/segment.c 				 devi, sbi->s_ndevs ? FDEV(devi).path : "",
sbi              1787 fs/f2fs/segment.c 	return __queue_discard_cmd(sbi, bdev, lblkstart, blklen);
sbi              1791 fs/f2fs/segment.c static int __issue_discard_async(struct f2fs_sb_info *sbi,
sbi              1795 fs/f2fs/segment.c 	if (f2fs_sb_has_blkzoned(sbi) && bdev_is_zoned(bdev))
sbi              1796 fs/f2fs/segment.c 		return __f2fs_issue_discard_zone(sbi, bdev, blkstart, blklen);
sbi              1798 fs/f2fs/segment.c 	return __queue_discard_cmd(sbi, bdev, blkstart, blklen);
sbi              1801 fs/f2fs/segment.c static int f2fs_issue_discard(struct f2fs_sb_info *sbi,
sbi              1811 fs/f2fs/segment.c 	bdev = f2fs_target_device(sbi, blkstart, NULL);
sbi              1816 fs/f2fs/segment.c 				f2fs_target_device(sbi, i, NULL);
sbi              1819 fs/f2fs/segment.c 				err = __issue_discard_async(sbi, bdev,
sbi              1829 fs/f2fs/segment.c 		se = get_seg_entry(sbi, GET_SEGNO(sbi, i));
sbi              1830 fs/f2fs/segment.c 		offset = GET_BLKOFF_FROM_SEG0(sbi, i);
sbi              1833 fs/f2fs/segment.c 			sbi->discard_blks--;
sbi              1837 fs/f2fs/segment.c 		err = __issue_discard_async(sbi, bdev, start, len);
sbi              1841 fs/f2fs/segment.c static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc,
sbi              1845 fs/f2fs/segment.c 	int max_blocks = sbi->blocks_per_seg;
sbi              1846 fs/f2fs/segment.c 	struct seg_entry *se = get_seg_entry(sbi, cpc->trim_start);
sbi              1850 fs/f2fs/segment.c 	unsigned long *dmap = SIT_I(sbi)->tmp_map;
sbi              1854 fs/f2fs/segment.c 	struct list_head *head = &SM_I(sbi)->dcc_info->entry_list;
sbi              1857 fs/f2fs/segment.c 	if (se->valid_blocks == max_blocks || !f2fs_hw_support_discard(sbi))
sbi              1861 fs/f2fs/segment.c 		if (!f2fs_realtime_discard_enable(sbi) || !se->valid_blocks ||
sbi              1862 fs/f2fs/segment.c 			SM_I(sbi)->dcc_info->nr_discards >=
sbi              1863 fs/f2fs/segment.c 				SM_I(sbi)->dcc_info->max_discards)
sbi              1872 fs/f2fs/segment.c 	while (force || SM_I(sbi)->dcc_info->nr_discards <=
sbi              1873 fs/f2fs/segment.c 				SM_I(sbi)->dcc_info->max_discards) {
sbi              1889 fs/f2fs/segment.c 			de->start_blkaddr = START_BLOCK(sbi, cpc->trim_start);
sbi              1896 fs/f2fs/segment.c 		SM_I(sbi)->dcc_info->nr_discards += end - start;
sbi              1907 fs/f2fs/segment.c void f2fs_release_discard_addrs(struct f2fs_sb_info *sbi)
sbi              1909 fs/f2fs/segment.c 	struct list_head *head = &(SM_I(sbi)->dcc_info->entry_list);
sbi              1920 fs/f2fs/segment.c static void set_prefree_as_free_segments(struct f2fs_sb_info *sbi)
sbi              1922 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              1926 fs/f2fs/segment.c 	for_each_set_bit(segno, dirty_i->dirty_segmap[PRE], MAIN_SEGS(sbi))
sbi              1927 fs/f2fs/segment.c 		__set_test_and_free(sbi, segno);
sbi              1931 fs/f2fs/segment.c void f2fs_clear_prefree_segments(struct f2fs_sb_info *sbi,
sbi              1934 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              1937 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              1942 fs/f2fs/segment.c 	bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);
sbi              1951 fs/f2fs/segment.c 		start = find_next_bit(prefree_map, MAIN_SEGS(sbi), end + 1);
sbi              1952 fs/f2fs/segment.c 		if (start >= MAIN_SEGS(sbi))
sbi              1954 fs/f2fs/segment.c 		end = find_next_zero_bit(prefree_map, MAIN_SEGS(sbi),
sbi              1958 fs/f2fs/segment.c 			start = rounddown(start, sbi->segs_per_sec);
sbi              1959 fs/f2fs/segment.c 			end = roundup(end, sbi->segs_per_sec);
sbi              1967 fs/f2fs/segment.c 		if (!f2fs_realtime_discard_enable(sbi))
sbi              1974 fs/f2fs/segment.c 		if (!test_opt(sbi, LFS) || !__is_large_section(sbi)) {
sbi              1975 fs/f2fs/segment.c 			f2fs_issue_discard(sbi, START_BLOCK(sbi, start),
sbi              1976 fs/f2fs/segment.c 				(end - start) << sbi->log_blocks_per_seg);
sbi              1980 fs/f2fs/segment.c 		secno = GET_SEC_FROM_SEG(sbi, start);
sbi              1981 fs/f2fs/segment.c 		start_segno = GET_SEG_FROM_SEC(sbi, secno);
sbi              1982 fs/f2fs/segment.c 		if (!IS_CURSEC(sbi, secno) &&
sbi              1983 fs/f2fs/segment.c 			!get_valid_blocks(sbi, start, true))
sbi              1984 fs/f2fs/segment.c 			f2fs_issue_discard(sbi, START_BLOCK(sbi, start_segno),
sbi              1985 fs/f2fs/segment.c 				sbi->segs_per_sec << sbi->log_blocks_per_seg);
sbi              1987 fs/f2fs/segment.c 		start = start_segno + sbi->segs_per_sec;
sbi              2003 fs/f2fs/segment.c 					sbi->blocks_per_seg, cur_pos);
sbi              2006 fs/f2fs/segment.c 			if (f2fs_sb_has_blkzoned(sbi) ||
sbi              2010 fs/f2fs/segment.c 			f2fs_issue_discard(sbi, entry->start_blkaddr + cur_pos,
sbi              2015 fs/f2fs/segment.c 					sbi->blocks_per_seg, cur_pos);
sbi              2021 fs/f2fs/segment.c 		if (cur_pos < sbi->blocks_per_seg)
sbi              2028 fs/f2fs/segment.c 	wake_up_discard_thread(sbi, false);
sbi              2031 fs/f2fs/segment.c static int create_discard_cmd_control(struct f2fs_sb_info *sbi)
sbi              2033 fs/f2fs/segment.c 	dev_t dev = sbi->sb->s_bdev->bd_dev;
sbi              2037 fs/f2fs/segment.c 	if (SM_I(sbi)->dcc_info) {
sbi              2038 fs/f2fs/segment.c 		dcc = SM_I(sbi)->dcc_info;
sbi              2042 fs/f2fs/segment.c 	dcc = f2fs_kzalloc(sbi, sizeof(struct discard_cmd_control), GFP_KERNEL);
sbi              2057 fs/f2fs/segment.c 	dcc->max_discards = MAIN_SEGS(sbi) << sbi->log_blocks_per_seg;
sbi              2064 fs/f2fs/segment.c 	SM_I(sbi)->dcc_info = dcc;
sbi              2066 fs/f2fs/segment.c 	dcc->f2fs_issue_discard = kthread_run(issue_discard_thread, sbi,
sbi              2071 fs/f2fs/segment.c 		SM_I(sbi)->dcc_info = NULL;
sbi              2078 fs/f2fs/segment.c static void destroy_discard_cmd_control(struct f2fs_sb_info *sbi)
sbi              2080 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              2085 fs/f2fs/segment.c 	f2fs_stop_discard_thread(sbi);
sbi              2092 fs/f2fs/segment.c 		f2fs_issue_discard_timeout(sbi);
sbi              2095 fs/f2fs/segment.c 	SM_I(sbi)->dcc_info = NULL;
sbi              2098 fs/f2fs/segment.c static bool __mark_sit_entry_dirty(struct f2fs_sb_info *sbi, unsigned int segno)
sbi              2100 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              2110 fs/f2fs/segment.c static void __set_sit_entry_type(struct f2fs_sb_info *sbi, int type,
sbi              2113 fs/f2fs/segment.c 	struct seg_entry *se = get_seg_entry(sbi, segno);
sbi              2116 fs/f2fs/segment.c 		__mark_sit_entry_dirty(sbi, segno);
sbi              2119 fs/f2fs/segment.c static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
sbi              2129 fs/f2fs/segment.c 	segno = GET_SEGNO(sbi, blkaddr);
sbi              2131 fs/f2fs/segment.c 	se = get_seg_entry(sbi, segno);
sbi              2133 fs/f2fs/segment.c 	offset = GET_BLKOFF_FROM_SEG0(sbi, blkaddr);
sbi              2135 fs/f2fs/segment.c 	f2fs_bug_on(sbi, (new_vblocks >> (sizeof(unsigned short) << 3) ||
sbi              2136 fs/f2fs/segment.c 				(new_vblocks > sbi->blocks_per_seg)));
sbi              2139 fs/f2fs/segment.c 	se->mtime = get_mtime(sbi, false);
sbi              2140 fs/f2fs/segment.c 	if (se->mtime > SIT_I(sbi)->max_mtime)
sbi              2141 fs/f2fs/segment.c 		SIT_I(sbi)->max_mtime = se->mtime;
sbi              2150 fs/f2fs/segment.c 			f2fs_err(sbi, "Inconsistent error when setting bitmap, blk:%u, old bit:%d",
sbi              2152 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi              2156 fs/f2fs/segment.c 			f2fs_err(sbi, "Bitmap was wrongly set, blk:%u",
sbi              2158 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi              2164 fs/f2fs/segment.c 			sbi->discard_blks--;
sbi              2170 fs/f2fs/segment.c 		if (!is_sbi_flag_set(sbi, SBI_CP_DISABLED)) {
sbi              2180 fs/f2fs/segment.c 			f2fs_err(sbi, "Inconsistent error when clearing bitmap, blk:%u, old bit:%d",
sbi              2182 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi              2186 fs/f2fs/segment.c 			f2fs_err(sbi, "Bitmap was wrongly cleared, blk:%u",
sbi              2188 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi              2191 fs/f2fs/segment.c 		} else if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi              2199 fs/f2fs/segment.c 				spin_lock(&sbi->stat_lock);
sbi              2200 fs/f2fs/segment.c 				sbi->unusable_block_count++;
sbi              2201 fs/f2fs/segment.c 				spin_unlock(&sbi->stat_lock);
sbi              2206 fs/f2fs/segment.c 			sbi->discard_blks++;
sbi              2211 fs/f2fs/segment.c 	__mark_sit_entry_dirty(sbi, segno);
sbi              2214 fs/f2fs/segment.c 	SIT_I(sbi)->written_valid_blocks += del;
sbi              2216 fs/f2fs/segment.c 	if (__is_large_section(sbi))
sbi              2217 fs/f2fs/segment.c 		get_sec_entry(sbi, segno)->valid_blocks += del;
sbi              2220 fs/f2fs/segment.c void f2fs_invalidate_blocks(struct f2fs_sb_info *sbi, block_t addr)
sbi              2222 fs/f2fs/segment.c 	unsigned int segno = GET_SEGNO(sbi, addr);
sbi              2223 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              2225 fs/f2fs/segment.c 	f2fs_bug_on(sbi, addr == NULL_ADDR);
sbi              2229 fs/f2fs/segment.c 	invalidate_mapping_pages(META_MAPPING(sbi), addr, addr);
sbi              2234 fs/f2fs/segment.c 	update_sit_entry(sbi, addr, -1);
sbi              2237 fs/f2fs/segment.c 	locate_dirty_segment(sbi, segno);
sbi              2242 fs/f2fs/segment.c bool f2fs_is_checkpointed_data(struct f2fs_sb_info *sbi, block_t blkaddr)
sbi              2244 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              2254 fs/f2fs/segment.c 	segno = GET_SEGNO(sbi, blkaddr);
sbi              2255 fs/f2fs/segment.c 	se = get_seg_entry(sbi, segno);
sbi              2256 fs/f2fs/segment.c 	offset = GET_BLKOFF_FROM_SEG0(sbi, blkaddr);
sbi              2269 fs/f2fs/segment.c static void __add_sum_entry(struct f2fs_sb_info *sbi, int type,
sbi              2272 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2281 fs/f2fs/segment.c int f2fs_npages_for_summary_flush(struct f2fs_sb_info *sbi, bool for_ra)
sbi              2287 fs/f2fs/segment.c 		if (sbi->ckpt->alloc_type[i] == SSR)
sbi              2288 fs/f2fs/segment.c 			valid_sum_count += sbi->blocks_per_seg;
sbi              2292 fs/f2fs/segment.c 					F2FS_CKPT(sbi)->cur_data_blkoff[i]);
sbi              2294 fs/f2fs/segment.c 				valid_sum_count += curseg_blkoff(sbi, i);
sbi              2311 fs/f2fs/segment.c struct page *f2fs_get_sum_page(struct f2fs_sb_info *sbi, unsigned int segno)
sbi              2313 fs/f2fs/segment.c 	return f2fs_get_meta_page_nofail(sbi, GET_SUM_BLOCK(sbi, segno));
sbi              2316 fs/f2fs/segment.c void f2fs_update_meta_page(struct f2fs_sb_info *sbi,
sbi              2319 fs/f2fs/segment.c 	struct page *page = f2fs_grab_meta_page(sbi, blk_addr);
sbi              2326 fs/f2fs/segment.c static void write_sum_page(struct f2fs_sb_info *sbi,
sbi              2329 fs/f2fs/segment.c 	f2fs_update_meta_page(sbi, (void *)sum_blk, blk_addr);
sbi              2332 fs/f2fs/segment.c static void write_current_sum_page(struct f2fs_sb_info *sbi,
sbi              2335 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2336 fs/f2fs/segment.c 	struct page *page = f2fs_grab_meta_page(sbi, blk_addr);
sbi              2358 fs/f2fs/segment.c static int is_next_segment_free(struct f2fs_sb_info *sbi, int type)
sbi              2360 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2362 fs/f2fs/segment.c 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi              2364 fs/f2fs/segment.c 	if (segno < MAIN_SEGS(sbi) && segno % sbi->segs_per_sec)
sbi              2373 fs/f2fs/segment.c static void get_new_segment(struct f2fs_sb_info *sbi,
sbi              2376 fs/f2fs/segment.c 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi              2378 fs/f2fs/segment.c 	unsigned int total_zones = MAIN_SECS(sbi) / sbi->secs_per_zone;
sbi              2379 fs/f2fs/segment.c 	unsigned int hint = GET_SEC_FROM_SEG(sbi, *newseg);
sbi              2380 fs/f2fs/segment.c 	unsigned int old_zoneno = GET_ZONE_FROM_SEG(sbi, *newseg);
sbi              2388 fs/f2fs/segment.c 	if (!new_sec && ((*newseg + 1) % sbi->segs_per_sec)) {
sbi              2390 fs/f2fs/segment.c 			GET_SEG_FROM_SEC(sbi, hint + 1), *newseg + 1);
sbi              2391 fs/f2fs/segment.c 		if (segno < GET_SEG_FROM_SEC(sbi, hint + 1))
sbi              2395 fs/f2fs/segment.c 	secno = find_next_zero_bit(free_i->free_secmap, MAIN_SECS(sbi), hint);
sbi              2396 fs/f2fs/segment.c 	if (secno >= MAIN_SECS(sbi)) {
sbi              2399 fs/f2fs/segment.c 							MAIN_SECS(sbi), 0);
sbi              2400 fs/f2fs/segment.c 			f2fs_bug_on(sbi, secno >= MAIN_SECS(sbi));
sbi              2415 fs/f2fs/segment.c 							MAIN_SECS(sbi), 0);
sbi              2416 fs/f2fs/segment.c 		f2fs_bug_on(sbi, left_start >= MAIN_SECS(sbi));
sbi              2421 fs/f2fs/segment.c 	segno = GET_SEG_FROM_SEC(sbi, secno);
sbi              2422 fs/f2fs/segment.c 	zoneno = GET_ZONE_FROM_SEC(sbi, secno);
sbi              2427 fs/f2fs/segment.c 	if (sbi->secs_per_zone == 1)
sbi              2438 fs/f2fs/segment.c 		if (CURSEG_I(sbi, i)->zone == zoneno)
sbi              2444 fs/f2fs/segment.c 			hint = zoneno * sbi->secs_per_zone - 1;
sbi              2448 fs/f2fs/segment.c 			hint = (zoneno + 1) * sbi->secs_per_zone;
sbi              2454 fs/f2fs/segment.c 	f2fs_bug_on(sbi, test_bit(segno, free_i->free_segmap));
sbi              2455 fs/f2fs/segment.c 	__set_inuse(sbi, segno);
sbi              2460 fs/f2fs/segment.c static void reset_curseg(struct f2fs_sb_info *sbi, int type, int modified)
sbi              2462 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2466 fs/f2fs/segment.c 	curseg->zone = GET_ZONE_FROM_SEG(sbi, curseg->segno);
sbi              2476 fs/f2fs/segment.c 	__set_sit_entry_type(sbi, type, curseg->segno, modified);
sbi              2479 fs/f2fs/segment.c static unsigned int __get_next_segno(struct f2fs_sb_info *sbi, int type)
sbi              2482 fs/f2fs/segment.c 	if (__is_large_section(sbi))
sbi              2483 fs/f2fs/segment.c 		return CURSEG_I(sbi, type)->segno;
sbi              2485 fs/f2fs/segment.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi              2488 fs/f2fs/segment.c 	if (test_opt(sbi, NOHEAP) &&
sbi              2492 fs/f2fs/segment.c 	if (SIT_I(sbi)->last_victim[ALLOC_NEXT])
sbi              2493 fs/f2fs/segment.c 		return SIT_I(sbi)->last_victim[ALLOC_NEXT];
sbi              2496 fs/f2fs/segment.c 	if (F2FS_OPTION(sbi).alloc_mode == ALLOC_MODE_REUSE)
sbi              2499 fs/f2fs/segment.c 	return CURSEG_I(sbi, type)->segno;
sbi              2506 fs/f2fs/segment.c static void new_curseg(struct f2fs_sb_info *sbi, int type, bool new_sec)
sbi              2508 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2512 fs/f2fs/segment.c 	write_sum_page(sbi, curseg->sum_blk,
sbi              2513 fs/f2fs/segment.c 				GET_SUM_BLOCK(sbi, segno));
sbi              2517 fs/f2fs/segment.c 	if (test_opt(sbi, NOHEAP))
sbi              2520 fs/f2fs/segment.c 	segno = __get_next_segno(sbi, type);
sbi              2521 fs/f2fs/segment.c 	get_new_segment(sbi, &segno, new_sec, dir);
sbi              2523 fs/f2fs/segment.c 	reset_curseg(sbi, type, 1);
sbi              2527 fs/f2fs/segment.c static void __next_free_blkoff(struct f2fs_sb_info *sbi,
sbi              2530 fs/f2fs/segment.c 	struct seg_entry *se = get_seg_entry(sbi, seg->segno);
sbi              2532 fs/f2fs/segment.c 	unsigned long *target_map = SIT_I(sbi)->tmp_map;
sbi              2540 fs/f2fs/segment.c 	pos = __find_rev_next_zero_bit(target_map, sbi->blocks_per_seg, start);
sbi              2550 fs/f2fs/segment.c static void __refresh_next_blkoff(struct f2fs_sb_info *sbi,
sbi              2554 fs/f2fs/segment.c 		__next_free_blkoff(sbi, seg, seg->next_blkoff + 1);
sbi              2563 fs/f2fs/segment.c static void change_curseg(struct f2fs_sb_info *sbi, int type)
sbi              2565 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              2566 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2571 fs/f2fs/segment.c 	write_sum_page(sbi, curseg->sum_blk,
sbi              2572 fs/f2fs/segment.c 				GET_SUM_BLOCK(sbi, curseg->segno));
sbi              2573 fs/f2fs/segment.c 	__set_test_and_inuse(sbi, new_segno);
sbi              2576 fs/f2fs/segment.c 	__remove_dirty_segment(sbi, new_segno, PRE);
sbi              2577 fs/f2fs/segment.c 	__remove_dirty_segment(sbi, new_segno, DIRTY);
sbi              2580 fs/f2fs/segment.c 	reset_curseg(sbi, type, 1);
sbi              2582 fs/f2fs/segment.c 	__next_free_blkoff(sbi, curseg, 0);
sbi              2584 fs/f2fs/segment.c 	sum_page = f2fs_get_sum_page(sbi, new_segno);
sbi              2585 fs/f2fs/segment.c 	f2fs_bug_on(sbi, IS_ERR(sum_page));
sbi              2591 fs/f2fs/segment.c static int get_ssr_segment(struct f2fs_sb_info *sbi, int type)
sbi              2593 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2594 fs/f2fs/segment.c 	const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops;
sbi              2600 fs/f2fs/segment.c 	if (v_ops->get_victim(sbi, &segno, BG_GC, type, SSR)) {
sbi              2627 fs/f2fs/segment.c 		if (v_ops->get_victim(sbi, &segno, BG_GC, i, SSR)) {
sbi              2634 fs/f2fs/segment.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi              2635 fs/f2fs/segment.c 		segno = get_free_segment(sbi);
sbi              2648 fs/f2fs/segment.c static void allocate_segment_by_default(struct f2fs_sb_info *sbi,
sbi              2651 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2654 fs/f2fs/segment.c 		new_curseg(sbi, type, true);
sbi              2655 fs/f2fs/segment.c 	else if (!is_set_ckpt_flags(sbi, CP_CRC_RECOVERY_FLAG) &&
sbi              2657 fs/f2fs/segment.c 		new_curseg(sbi, type, false);
sbi              2658 fs/f2fs/segment.c 	else if (curseg->alloc_type == LFS && is_next_segment_free(sbi, type) &&
sbi              2659 fs/f2fs/segment.c 			likely(!is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi              2660 fs/f2fs/segment.c 		new_curseg(sbi, type, false);
sbi              2661 fs/f2fs/segment.c 	else if (f2fs_need_SSR(sbi) && get_ssr_segment(sbi, type))
sbi              2662 fs/f2fs/segment.c 		change_curseg(sbi, type);
sbi              2664 fs/f2fs/segment.c 		new_curseg(sbi, type, false);
sbi              2666 fs/f2fs/segment.c 	stat_inc_seg_type(sbi, curseg);
sbi              2669 fs/f2fs/segment.c void allocate_segment_for_resize(struct f2fs_sb_info *sbi, int type,
sbi              2672 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2675 fs/f2fs/segment.c 	down_read(&SM_I(sbi)->curseg_lock);
sbi              2677 fs/f2fs/segment.c 	down_write(&SIT_I(sbi)->sentry_lock);
sbi              2679 fs/f2fs/segment.c 	segno = CURSEG_I(sbi, type)->segno;
sbi              2683 fs/f2fs/segment.c 	if (f2fs_need_SSR(sbi) && get_ssr_segment(sbi, type))
sbi              2684 fs/f2fs/segment.c 		change_curseg(sbi, type);
sbi              2686 fs/f2fs/segment.c 		new_curseg(sbi, type, true);
sbi              2688 fs/f2fs/segment.c 	stat_inc_seg_type(sbi, curseg);
sbi              2690 fs/f2fs/segment.c 	locate_dirty_segment(sbi, segno);
sbi              2692 fs/f2fs/segment.c 	up_write(&SIT_I(sbi)->sentry_lock);
sbi              2695 fs/f2fs/segment.c 		f2fs_notice(sbi, "For resize: curseg of type %d: %u ==> %u",
sbi              2699 fs/f2fs/segment.c 	up_read(&SM_I(sbi)->curseg_lock);
sbi              2702 fs/f2fs/segment.c void f2fs_allocate_new_segments(struct f2fs_sb_info *sbi)
sbi              2708 fs/f2fs/segment.c 	down_write(&SIT_I(sbi)->sentry_lock);
sbi              2711 fs/f2fs/segment.c 		curseg = CURSEG_I(sbi, i);
sbi              2713 fs/f2fs/segment.c 		SIT_I(sbi)->s_ops->allocate_segment(sbi, i, true);
sbi              2714 fs/f2fs/segment.c 		locate_dirty_segment(sbi, old_segno);
sbi              2717 fs/f2fs/segment.c 	up_write(&SIT_I(sbi)->sentry_lock);
sbi              2724 fs/f2fs/segment.c bool f2fs_exist_trim_candidates(struct f2fs_sb_info *sbi,
sbi              2730 fs/f2fs/segment.c 	down_write(&SIT_I(sbi)->sentry_lock);
sbi              2732 fs/f2fs/segment.c 		if (add_discard_addrs(sbi, cpc, true)) {
sbi              2737 fs/f2fs/segment.c 	up_write(&SIT_I(sbi)->sentry_lock);
sbi              2743 fs/f2fs/segment.c static unsigned int __issue_discard_cmd_range(struct f2fs_sb_info *sbi,
sbi              2747 fs/f2fs/segment.c 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi              2760 fs/f2fs/segment.c 		f2fs_bug_on(sbi, !f2fs_check_rb_tree_consistence(sbi,
sbi              2785 fs/f2fs/segment.c 		err = __submit_discard_cmd(sbi, dpolicy, dc, &issued);
sbi              2791 fs/f2fs/segment.c 				__remove_discard_cmd(sbi, dc);
sbi              2795 fs/f2fs/segment.c 			trimmed += __wait_all_discard_cmd(sbi, NULL);
sbi              2802 fs/f2fs/segment.c 			__remove_discard_cmd(sbi, dc);
sbi              2815 fs/f2fs/segment.c int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)
sbi              2825 fs/f2fs/segment.c 	bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);
sbi              2827 fs/f2fs/segment.c 	if (start >= MAX_BLKADDR(sbi) || range->len < sbi->blocksize)
sbi              2830 fs/f2fs/segment.c 	if (end < MAIN_BLKADDR(sbi))
sbi              2833 fs/f2fs/segment.c 	if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) {
sbi              2834 fs/f2fs/segment.c 		f2fs_warn(sbi, "Found FS corruption, run fsck to fix.");
sbi              2839 fs/f2fs/segment.c 	start_segno = (start <= MAIN_BLKADDR(sbi)) ? 0 : GET_SEGNO(sbi, start);
sbi              2840 fs/f2fs/segment.c 	end_segno = (end >= MAX_BLKADDR(sbi)) ? MAIN_SEGS(sbi) - 1 :
sbi              2841 fs/f2fs/segment.c 						GET_SEGNO(sbi, end);
sbi              2843 fs/f2fs/segment.c 		start_segno = rounddown(start_segno, sbi->segs_per_sec);
sbi              2844 fs/f2fs/segment.c 		end_segno = roundup(end_segno + 1, sbi->segs_per_sec) - 1;
sbi              2852 fs/f2fs/segment.c 	if (sbi->discard_blks == 0)
sbi              2855 fs/f2fs/segment.c 	mutex_lock(&sbi->gc_mutex);
sbi              2856 fs/f2fs/segment.c 	err = f2fs_write_checkpoint(sbi, &cpc);
sbi              2857 fs/f2fs/segment.c 	mutex_unlock(&sbi->gc_mutex);
sbi              2867 fs/f2fs/segment.c 	if (f2fs_realtime_discard_enable(sbi))
sbi              2870 fs/f2fs/segment.c 	start_block = START_BLOCK(sbi, start_segno);
sbi              2871 fs/f2fs/segment.c 	end_block = START_BLOCK(sbi, end_segno + 1);
sbi              2873 fs/f2fs/segment.c 	__init_discard_policy(sbi, &dpolicy, DPOLICY_FSTRIM, cpc.trim_minlen);
sbi              2874 fs/f2fs/segment.c 	trimmed = __issue_discard_cmd_range(sbi, &dpolicy,
sbi              2877 fs/f2fs/segment.c 	trimmed += __wait_discard_cmd_range(sbi, &dpolicy,
sbi              2885 fs/f2fs/segment.c static bool __has_curseg_space(struct f2fs_sb_info *sbi, int type)
sbi              2887 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              2888 fs/f2fs/segment.c 	if (curseg->next_blkoff < sbi->blocks_per_seg)
sbi              2966 fs/f2fs/segment.c enum rw_hint f2fs_io_type_to_rw_hint(struct f2fs_sb_info *sbi,
sbi              2969 fs/f2fs/segment.c 	if (F2FS_OPTION(sbi).whint_mode == WHINT_MODE_USER) {
sbi              2980 fs/f2fs/segment.c 	} else if (F2FS_OPTION(sbi).whint_mode == WHINT_MODE_FS) {
sbi              3050 fs/f2fs/segment.c 	switch (F2FS_OPTION(fio->sbi).active_logs) {
sbi              3061 fs/f2fs/segment.c 		f2fs_bug_on(fio->sbi, true);
sbi              3073 fs/f2fs/segment.c void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page,
sbi              3078 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              3079 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi              3081 fs/f2fs/segment.c 	down_read(&SM_I(sbi)->curseg_lock);
sbi              3086 fs/f2fs/segment.c 	*new_blkaddr = NEXT_FREE_BLKADDR(sbi, curseg);
sbi              3088 fs/f2fs/segment.c 	f2fs_wait_discard_bio(sbi, *new_blkaddr);
sbi              3095 fs/f2fs/segment.c 	__add_sum_entry(sbi, type, sum);
sbi              3097 fs/f2fs/segment.c 	__refresh_next_blkoff(sbi, curseg);
sbi              3099 fs/f2fs/segment.c 	stat_inc_block_count(sbi, curseg);
sbi              3105 fs/f2fs/segment.c 	update_sit_entry(sbi, *new_blkaddr, 1);
sbi              3106 fs/f2fs/segment.c 	if (GET_SEGNO(sbi, old_blkaddr) != NULL_SEGNO)
sbi              3107 fs/f2fs/segment.c 		update_sit_entry(sbi, old_blkaddr, -1);
sbi              3109 fs/f2fs/segment.c 	if (!__has_curseg_space(sbi, type))
sbi              3110 fs/f2fs/segment.c 		sit_i->s_ops->allocate_segment(sbi, type, false);
sbi              3117 fs/f2fs/segment.c 	locate_dirty_segment(sbi, GET_SEGNO(sbi, old_blkaddr));
sbi              3118 fs/f2fs/segment.c 	locate_dirty_segment(sbi, GET_SEGNO(sbi, *new_blkaddr));
sbi              3123 fs/f2fs/segment.c 		fill_node_footer_blkaddr(page, NEXT_FREE_BLKADDR(sbi, curseg));
sbi              3125 fs/f2fs/segment.c 		f2fs_inode_chksum_set(sbi, page);
sbi              3128 fs/f2fs/segment.c 	if (F2FS_IO_ALIGNED(sbi))
sbi              3136 fs/f2fs/segment.c 		io = sbi->write_io[fio->type] + fio->temp;
sbi              3144 fs/f2fs/segment.c 	up_read(&SM_I(sbi)->curseg_lock);
sbi              3149 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = fio->sbi;
sbi              3152 fs/f2fs/segment.c 	if (!f2fs_is_multi_device(sbi))
sbi              3155 fs/f2fs/segment.c 	devidx = f2fs_target_device_index(sbi, fio->new_blkaddr);
sbi              3158 fs/f2fs/segment.c 	f2fs_set_dirty_device(sbi, fio->ino, devidx, FLUSH_INO);
sbi              3161 fs/f2fs/segment.c 	if (!f2fs_test_bit(devidx, (char *)&sbi->dirty_device)) {
sbi              3162 fs/f2fs/segment.c 		spin_lock(&sbi->dev_lock);
sbi              3163 fs/f2fs/segment.c 		f2fs_set_bit(devidx, (char *)&sbi->dirty_device);
sbi              3164 fs/f2fs/segment.c 		spin_unlock(&sbi->dev_lock);
sbi              3171 fs/f2fs/segment.c 	bool keep_order = (test_opt(fio->sbi, LFS) && type == CURSEG_COLD_DATA);
sbi              3174 fs/f2fs/segment.c 		down_read(&fio->sbi->io_order_lock);
sbi              3176 fs/f2fs/segment.c 	f2fs_allocate_data_block(fio->sbi, fio->page, fio->old_blkaddr,
sbi              3178 fs/f2fs/segment.c 	if (GET_SEGNO(fio->sbi, fio->old_blkaddr) != NULL_SEGNO)
sbi              3179 fs/f2fs/segment.c 		invalidate_mapping_pages(META_MAPPING(fio->sbi),
sbi              3192 fs/f2fs/segment.c 		up_read(&fio->sbi->io_order_lock);
sbi              3195 fs/f2fs/segment.c void f2fs_do_write_meta_page(struct f2fs_sb_info *sbi, struct page *page,
sbi              3199 fs/f2fs/segment.c 		.sbi = sbi,
sbi              3211 fs/f2fs/segment.c 	if (unlikely(page->index >= MAIN_BLKADDR(sbi)))
sbi              3218 fs/f2fs/segment.c 	stat_inc_meta_count(sbi, page->index);
sbi              3219 fs/f2fs/segment.c 	f2fs_update_iostat(sbi, io_type, F2FS_BLKSIZE);
sbi              3229 fs/f2fs/segment.c 	f2fs_update_iostat(fio->sbi, fio->io_type, F2FS_BLKSIZE);
sbi              3235 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = fio->sbi;
sbi              3238 fs/f2fs/segment.c 	f2fs_bug_on(sbi, dn->data_blkaddr == NULL_ADDR);
sbi              3243 fs/f2fs/segment.c 	f2fs_update_iostat(sbi, fio->io_type, F2FS_BLKSIZE);
sbi              3249 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = fio->sbi;
sbi              3256 fs/f2fs/segment.c 	segno = GET_SEGNO(sbi, fio->new_blkaddr);
sbi              3258 fs/f2fs/segment.c 	if (!IS_DATASEG(get_seg_entry(sbi, segno)->type)) {
sbi              3259 fs/f2fs/segment.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              3260 fs/f2fs/segment.c 		f2fs_warn(sbi, "%s: incorrect segment(%u) type, run fsck to fix.",
sbi              3265 fs/f2fs/segment.c 	stat_inc_inplace_blocks(fio->sbi);
sbi              3273 fs/f2fs/segment.c 		f2fs_update_iostat(fio->sbi, fio->io_type, F2FS_BLKSIZE);
sbi              3279 fs/f2fs/segment.c static inline int __f2fs_get_curseg(struct f2fs_sb_info *sbi,
sbi              3285 fs/f2fs/segment.c 		if (CURSEG_I(sbi, i)->segno == segno)
sbi              3291 fs/f2fs/segment.c void f2fs_do_replace_block(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
sbi              3295 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              3302 fs/f2fs/segment.c 	segno = GET_SEGNO(sbi, new_blkaddr);
sbi              3303 fs/f2fs/segment.c 	se = get_seg_entry(sbi, segno);
sbi              3306 fs/f2fs/segment.c 	down_write(&SM_I(sbi)->curseg_lock);
sbi              3310 fs/f2fs/segment.c 		if (se->valid_blocks == 0 && !IS_CURSEG(sbi, segno)) {
sbi              3317 fs/f2fs/segment.c 		if (IS_CURSEG(sbi, segno)) {
sbi              3319 fs/f2fs/segment.c 			type = __f2fs_get_curseg(sbi, segno);
sbi              3320 fs/f2fs/segment.c 			f2fs_bug_on(sbi, type == NO_CHECK_TYPE);
sbi              3326 fs/f2fs/segment.c 	f2fs_bug_on(sbi, !IS_DATASEG(type));
sbi              3327 fs/f2fs/segment.c 	curseg = CURSEG_I(sbi, type);
sbi              3338 fs/f2fs/segment.c 		change_curseg(sbi, type);
sbi              3341 fs/f2fs/segment.c 	curseg->next_blkoff = GET_BLKOFF_FROM_SEG0(sbi, new_blkaddr);
sbi              3342 fs/f2fs/segment.c 	__add_sum_entry(sbi, type, sum);
sbi              3345 fs/f2fs/segment.c 		update_sit_entry(sbi, new_blkaddr, 1);
sbi              3346 fs/f2fs/segment.c 	if (GET_SEGNO(sbi, old_blkaddr) != NULL_SEGNO) {
sbi              3347 fs/f2fs/segment.c 		invalidate_mapping_pages(META_MAPPING(sbi),
sbi              3349 fs/f2fs/segment.c 		update_sit_entry(sbi, old_blkaddr, -1);
sbi              3352 fs/f2fs/segment.c 	locate_dirty_segment(sbi, GET_SEGNO(sbi, old_blkaddr));
sbi              3353 fs/f2fs/segment.c 	locate_dirty_segment(sbi, GET_SEGNO(sbi, new_blkaddr));
sbi              3355 fs/f2fs/segment.c 	locate_dirty_segment(sbi, old_cursegno);
sbi              3360 fs/f2fs/segment.c 			change_curseg(sbi, type);
sbi              3367 fs/f2fs/segment.c 	up_write(&SM_I(sbi)->curseg_lock);
sbi              3370 fs/f2fs/segment.c void f2fs_replace_block(struct f2fs_sb_info *sbi, struct dnode_of_data *dn,
sbi              3379 fs/f2fs/segment.c 	f2fs_do_replace_block(sbi, &sum, old_addr, new_addr,
sbi              3389 fs/f2fs/segment.c 		struct f2fs_sb_info *sbi = F2FS_P_SB(page);
sbi              3391 fs/f2fs/segment.c 		f2fs_submit_merged_write_cond(sbi, NULL, page, 0, type);
sbi              3394 fs/f2fs/segment.c 			f2fs_bug_on(sbi, locked && PageWriteback(page));
sbi              3403 fs/f2fs/segment.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              3412 fs/f2fs/segment.c 	cpage = find_lock_page(META_MAPPING(sbi), blkaddr);
sbi              3428 fs/f2fs/segment.c static int read_compacted_summaries(struct f2fs_sb_info *sbi)
sbi              3430 fs/f2fs/segment.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              3437 fs/f2fs/segment.c 	start = start_sum_block(sbi);
sbi              3439 fs/f2fs/segment.c 	page = f2fs_get_meta_page(sbi, start++);
sbi              3445 fs/f2fs/segment.c 	seg_i = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              3449 fs/f2fs/segment.c 	seg_i = CURSEG_I(sbi, CURSEG_COLD_DATA);
sbi              3458 fs/f2fs/segment.c 		seg_i = CURSEG_I(sbi, i);
sbi              3462 fs/f2fs/segment.c 		reset_curseg(sbi, i, 0);
sbi              3467 fs/f2fs/segment.c 			blk_off = sbi->blocks_per_seg;
sbi              3481 fs/f2fs/segment.c 			page = f2fs_get_meta_page(sbi, start++);
sbi              3492 fs/f2fs/segment.c static int read_normal_summaries(struct f2fs_sb_info *sbi, int type)
sbi              3494 fs/f2fs/segment.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              3508 fs/f2fs/segment.c 		if (__exist_node_summaries(sbi))
sbi              3509 fs/f2fs/segment.c 			blk_addr = sum_blk_addr(sbi, NR_CURSEG_TYPE, type);
sbi              3511 fs/f2fs/segment.c 			blk_addr = sum_blk_addr(sbi, NR_CURSEG_DATA_TYPE, type);
sbi              3517 fs/f2fs/segment.c 		if (__exist_node_summaries(sbi))
sbi              3518 fs/f2fs/segment.c 			blk_addr = sum_blk_addr(sbi, NR_CURSEG_NODE_TYPE,
sbi              3521 fs/f2fs/segment.c 			blk_addr = GET_SUM_BLOCK(sbi, segno);
sbi              3524 fs/f2fs/segment.c 	new = f2fs_get_meta_page(sbi, blk_addr);
sbi              3530 fs/f2fs/segment.c 		if (__exist_node_summaries(sbi)) {
sbi              3533 fs/f2fs/segment.c 			for (i = 0; i < sbi->blocks_per_seg; i++, ns++) {
sbi              3538 fs/f2fs/segment.c 			err = f2fs_restore_node_summary(sbi, segno, sum);
sbi              3545 fs/f2fs/segment.c 	curseg = CURSEG_I(sbi, type);
sbi              3556 fs/f2fs/segment.c 	reset_curseg(sbi, type, 0);
sbi              3565 fs/f2fs/segment.c static int restore_curseg_summaries(struct f2fs_sb_info *sbi)
sbi              3567 fs/f2fs/segment.c 	struct f2fs_journal *sit_j = CURSEG_I(sbi, CURSEG_COLD_DATA)->journal;
sbi              3568 fs/f2fs/segment.c 	struct f2fs_journal *nat_j = CURSEG_I(sbi, CURSEG_HOT_DATA)->journal;
sbi              3572 fs/f2fs/segment.c 	if (is_set_ckpt_flags(sbi, CP_COMPACT_SUM_FLAG)) {
sbi              3573 fs/f2fs/segment.c 		int npages = f2fs_npages_for_summary_flush(sbi, true);
sbi              3576 fs/f2fs/segment.c 			f2fs_ra_meta_pages(sbi, start_sum_block(sbi), npages,
sbi              3580 fs/f2fs/segment.c 		err = read_compacted_summaries(sbi);
sbi              3586 fs/f2fs/segment.c 	if (__exist_node_summaries(sbi))
sbi              3587 fs/f2fs/segment.c 		f2fs_ra_meta_pages(sbi, sum_blk_addr(sbi, NR_CURSEG_TYPE, type),
sbi              3591 fs/f2fs/segment.c 		err = read_normal_summaries(sbi, type);
sbi              3599 fs/f2fs/segment.c 		f2fs_err(sbi, "invalid journal entries nats %u sits %u\n",
sbi              3607 fs/f2fs/segment.c static void write_compacted_summaries(struct f2fs_sb_info *sbi, block_t blkaddr)
sbi              3616 fs/f2fs/segment.c 	page = f2fs_grab_meta_page(sbi, blkaddr++);
sbi              3621 fs/f2fs/segment.c 	seg_i = CURSEG_I(sbi, CURSEG_HOT_DATA);
sbi              3626 fs/f2fs/segment.c 	seg_i = CURSEG_I(sbi, CURSEG_COLD_DATA);
sbi              3633 fs/f2fs/segment.c 		seg_i = CURSEG_I(sbi, i);
sbi              3634 fs/f2fs/segment.c 		if (sbi->ckpt->alloc_type[i] == SSR)
sbi              3635 fs/f2fs/segment.c 			blkoff = sbi->blocks_per_seg;
sbi              3637 fs/f2fs/segment.c 			blkoff = curseg_blkoff(sbi, i);
sbi              3641 fs/f2fs/segment.c 				page = f2fs_grab_meta_page(sbi, blkaddr++);
sbi              3665 fs/f2fs/segment.c static void write_normal_summaries(struct f2fs_sb_info *sbi,
sbi              3675 fs/f2fs/segment.c 		write_current_sum_page(sbi, i, blkaddr + (i - type));
sbi              3678 fs/f2fs/segment.c void f2fs_write_data_summaries(struct f2fs_sb_info *sbi, block_t start_blk)
sbi              3680 fs/f2fs/segment.c 	if (is_set_ckpt_flags(sbi, CP_COMPACT_SUM_FLAG))
sbi              3681 fs/f2fs/segment.c 		write_compacted_summaries(sbi, start_blk);
sbi              3683 fs/f2fs/segment.c 		write_normal_summaries(sbi, start_blk, CURSEG_HOT_DATA);
sbi              3686 fs/f2fs/segment.c void f2fs_write_node_summaries(struct f2fs_sb_info *sbi, block_t start_blk)
sbi              3688 fs/f2fs/segment.c 	write_normal_summaries(sbi, start_blk, CURSEG_HOT_NODE);
sbi              3713 fs/f2fs/segment.c static struct page *get_current_sit_page(struct f2fs_sb_info *sbi,
sbi              3716 fs/f2fs/segment.c 	return f2fs_get_meta_page_nofail(sbi, current_sit_addr(sbi, segno));
sbi              3719 fs/f2fs/segment.c static struct page *get_next_sit_page(struct f2fs_sb_info *sbi,
sbi              3722 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              3726 fs/f2fs/segment.c 	src_off = current_sit_addr(sbi, start);
sbi              3727 fs/f2fs/segment.c 	dst_off = next_sit_addr(sbi, src_off);
sbi              3729 fs/f2fs/segment.c 	page = f2fs_grab_meta_page(sbi, dst_off);
sbi              3730 fs/f2fs/segment.c 	seg_info_to_sit_page(sbi, page, start);
sbi              3789 fs/f2fs/segment.c static void add_sits_in_set(struct f2fs_sb_info *sbi)
sbi              3791 fs/f2fs/segment.c 	struct f2fs_sm_info *sm_info = SM_I(sbi);
sbi              3793 fs/f2fs/segment.c 	unsigned long *bitmap = SIT_I(sbi)->dirty_sentries_bitmap;
sbi              3796 fs/f2fs/segment.c 	for_each_set_bit(segno, bitmap, MAIN_SEGS(sbi))
sbi              3800 fs/f2fs/segment.c static void remove_sits_in_journal(struct f2fs_sb_info *sbi)
sbi              3802 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA);
sbi              3812 fs/f2fs/segment.c 		dirtied = __mark_sit_entry_dirty(sbi, segno);
sbi              3815 fs/f2fs/segment.c 			add_sit_entry(segno, &SM_I(sbi)->sit_entry_set);
sbi              3825 fs/f2fs/segment.c void f2fs_flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc)
sbi              3827 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              3829 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA);
sbi              3832 fs/f2fs/segment.c 	struct list_head *head = &SM_I(sbi)->sit_entry_set;
sbi              3833 fs/f2fs/segment.c 	bool to_journal = !is_sbi_flag_set(sbi, SBI_IS_RESIZEFS);
sbi              3845 fs/f2fs/segment.c 	add_sits_in_set(sbi);
sbi              3854 fs/f2fs/segment.c 		remove_sits_in_journal(sbi);
sbi              3866 fs/f2fs/segment.c 						(unsigned long)MAIN_SEGS(sbi));
sbi              3876 fs/f2fs/segment.c 			page = get_next_sit_page(sbi, start_segno);
sbi              3884 fs/f2fs/segment.c 			se = get_seg_entry(sbi, segno);
sbi              3888 fs/f2fs/segment.c 				f2fs_bug_on(sbi, 1);
sbi              3894 fs/f2fs/segment.c 				add_discard_addrs(sbi, cpc, false);
sbi              3900 fs/f2fs/segment.c 				f2fs_bug_on(sbi, offset < 0);
sbi              3905 fs/f2fs/segment.c 				check_block_count(sbi, segno,
sbi              3911 fs/f2fs/segment.c 				check_block_count(sbi, segno,
sbi              3925 fs/f2fs/segment.c 		f2fs_bug_on(sbi, ses->entry_cnt);
sbi              3929 fs/f2fs/segment.c 	f2fs_bug_on(sbi, !list_empty(head));
sbi              3930 fs/f2fs/segment.c 	f2fs_bug_on(sbi, sit_i->dirty_sentries);
sbi              3936 fs/f2fs/segment.c 			add_discard_addrs(sbi, cpc, false);
sbi              3942 fs/f2fs/segment.c 	set_prefree_as_free_segments(sbi);
sbi              3945 fs/f2fs/segment.c static int build_sit_info(struct f2fs_sb_info *sbi)
sbi              3947 fs/f2fs/segment.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi              3954 fs/f2fs/segment.c 	sit_i = f2fs_kzalloc(sbi, sizeof(struct sit_info), GFP_KERNEL);
sbi              3958 fs/f2fs/segment.c 	SM_I(sbi)->sit_info = sit_i;
sbi              3961 fs/f2fs/segment.c 		f2fs_kvzalloc(sbi, array_size(sizeof(struct seg_entry),
sbi              3962 fs/f2fs/segment.c 					      MAIN_SEGS(sbi)),
sbi              3967 fs/f2fs/segment.c 	main_bitmap_size = f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi              3968 fs/f2fs/segment.c 	sit_i->dirty_sentries_bitmap = f2fs_kvzalloc(sbi, main_bitmap_size,
sbi              3974 fs/f2fs/segment.c 	bitmap_size = MAIN_SEGS(sbi) * SIT_VBLOCK_MAP_SIZE * 4;
sbi              3976 fs/f2fs/segment.c 	bitmap_size = MAIN_SEGS(sbi) * SIT_VBLOCK_MAP_SIZE * 3;
sbi              3978 fs/f2fs/segment.c 	sit_i->bitmap = f2fs_kvzalloc(sbi, bitmap_size, GFP_KERNEL);
sbi              3984 fs/f2fs/segment.c 	for (start = 0; start < MAIN_SEGS(sbi); start++) {
sbi              4000 fs/f2fs/segment.c 	sit_i->tmp_map = f2fs_kzalloc(sbi, SIT_VBLOCK_MAP_SIZE, GFP_KERNEL);
sbi              4004 fs/f2fs/segment.c 	if (__is_large_section(sbi)) {
sbi              4006 fs/f2fs/segment.c 			f2fs_kvzalloc(sbi, array_size(sizeof(struct sec_entry),
sbi              4007 fs/f2fs/segment.c 						      MAIN_SECS(sbi)),
sbi              4017 fs/f2fs/segment.c 	sit_bitmap_size = __bitmap_size(sbi, SIT_BITMAP);
sbi              4018 fs/f2fs/segment.c 	src_bitmap = __bitmap_ptr(sbi, SIT_BITMAP);
sbi              4030 fs/f2fs/segment.c 	sit_i->invalid_segmap = f2fs_kvzalloc(sbi,
sbi              4040 fs/f2fs/segment.c 	sit_i->sit_blocks = sit_segs << sbi->log_blocks_per_seg;
sbi              4045 fs/f2fs/segment.c 	sit_i->elapsed_time = le64_to_cpu(sbi->ckpt->elapsed_time);
sbi              4051 fs/f2fs/segment.c static int build_free_segmap(struct f2fs_sb_info *sbi)
sbi              4057 fs/f2fs/segment.c 	free_i = f2fs_kzalloc(sbi, sizeof(struct free_segmap_info), GFP_KERNEL);
sbi              4061 fs/f2fs/segment.c 	SM_I(sbi)->free_info = free_i;
sbi              4063 fs/f2fs/segment.c 	bitmap_size = f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi              4064 fs/f2fs/segment.c 	free_i->free_segmap = f2fs_kvmalloc(sbi, bitmap_size, GFP_KERNEL);
sbi              4068 fs/f2fs/segment.c 	sec_bitmap_size = f2fs_bitmap_size(MAIN_SECS(sbi));
sbi              4069 fs/f2fs/segment.c 	free_i->free_secmap = f2fs_kvmalloc(sbi, sec_bitmap_size, GFP_KERNEL);
sbi              4078 fs/f2fs/segment.c 	free_i->start_segno = GET_SEGNO_FROM_SEG0(sbi, MAIN_BLKADDR(sbi));
sbi              4085 fs/f2fs/segment.c static int build_curseg(struct f2fs_sb_info *sbi)
sbi              4090 fs/f2fs/segment.c 	array = f2fs_kzalloc(sbi, array_size(NR_CURSEG_TYPE, sizeof(*array)),
sbi              4095 fs/f2fs/segment.c 	SM_I(sbi)->curseg_array = array;
sbi              4099 fs/f2fs/segment.c 		array[i].sum_blk = f2fs_kzalloc(sbi, PAGE_SIZE, GFP_KERNEL);
sbi              4103 fs/f2fs/segment.c 		array[i].journal = f2fs_kzalloc(sbi,
sbi              4110 fs/f2fs/segment.c 	return restore_curseg_summaries(sbi);
sbi              4113 fs/f2fs/segment.c static int build_sit_entries(struct f2fs_sb_info *sbi)
sbi              4115 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              4116 fs/f2fs/segment.c 	struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA);
sbi              4120 fs/f2fs/segment.c 	int sit_blk_cnt = SIT_BLK_CNT(sbi);
sbi              4127 fs/f2fs/segment.c 		readed = f2fs_ra_meta_pages(sbi, start_blk, BIO_MAX_PAGES,
sbi              4133 fs/f2fs/segment.c 		for (; start < end && start < MAIN_SEGS(sbi); start++) {
sbi              4138 fs/f2fs/segment.c 			page = get_current_sit_page(sbi, start);
sbi              4145 fs/f2fs/segment.c 			err = check_block_count(sbi, start, &sit);
sbi              4153 fs/f2fs/segment.c 			if (is_set_ckpt_flags(sbi, CP_TRIMMED_FLAG)) {
sbi              4160 fs/f2fs/segment.c 				sbi->discard_blks +=
sbi              4161 fs/f2fs/segment.c 					sbi->blocks_per_seg -
sbi              4165 fs/f2fs/segment.c 			if (__is_large_section(sbi))
sbi              4166 fs/f2fs/segment.c 				get_sec_entry(sbi, start)->valid_blocks +=
sbi              4177 fs/f2fs/segment.c 		if (start >= MAIN_SEGS(sbi)) {
sbi              4178 fs/f2fs/segment.c 			f2fs_err(sbi, "Wrong journal entry on segno %u",
sbi              4191 fs/f2fs/segment.c 		err = check_block_count(sbi, start, &sit);
sbi              4198 fs/f2fs/segment.c 		if (is_set_ckpt_flags(sbi, CP_TRIMMED_FLAG)) {
sbi              4203 fs/f2fs/segment.c 			sbi->discard_blks += old_valid_blocks;
sbi              4204 fs/f2fs/segment.c 			sbi->discard_blks -= se->valid_blocks;
sbi              4207 fs/f2fs/segment.c 		if (__is_large_section(sbi)) {
sbi              4208 fs/f2fs/segment.c 			get_sec_entry(sbi, start)->valid_blocks +=
sbi              4210 fs/f2fs/segment.c 			get_sec_entry(sbi, start)->valid_blocks -=
sbi              4216 fs/f2fs/segment.c 	if (!err && total_node_blocks != valid_node_count(sbi)) {
sbi              4217 fs/f2fs/segment.c 		f2fs_err(sbi, "SIT is corrupted node# %u vs %u",
sbi              4218 fs/f2fs/segment.c 			 total_node_blocks, valid_node_count(sbi));
sbi              4225 fs/f2fs/segment.c static void init_free_segmap(struct f2fs_sb_info *sbi)
sbi              4230 fs/f2fs/segment.c 	for (start = 0; start < MAIN_SEGS(sbi); start++) {
sbi              4231 fs/f2fs/segment.c 		struct seg_entry *sentry = get_seg_entry(sbi, start);
sbi              4233 fs/f2fs/segment.c 			__set_free(sbi, start);
sbi              4235 fs/f2fs/segment.c 			SIT_I(sbi)->written_valid_blocks +=
sbi              4241 fs/f2fs/segment.c 		struct curseg_info *curseg_t = CURSEG_I(sbi, type);
sbi              4242 fs/f2fs/segment.c 		__set_test_and_inuse(sbi, curseg_t->segno);
sbi              4246 fs/f2fs/segment.c static void init_dirty_segmap(struct f2fs_sb_info *sbi)
sbi              4248 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              4249 fs/f2fs/segment.c 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi              4255 fs/f2fs/segment.c 		segno = find_next_inuse(free_i, MAIN_SEGS(sbi), offset);
sbi              4256 fs/f2fs/segment.c 		if (segno >= MAIN_SEGS(sbi))
sbi              4259 fs/f2fs/segment.c 		valid_blocks = get_valid_blocks(sbi, segno, false);
sbi              4260 fs/f2fs/segment.c 		if (valid_blocks == sbi->blocks_per_seg || !valid_blocks)
sbi              4262 fs/f2fs/segment.c 		if (valid_blocks > sbi->blocks_per_seg) {
sbi              4263 fs/f2fs/segment.c 			f2fs_bug_on(sbi, 1);
sbi              4267 fs/f2fs/segment.c 		__locate_dirty_segment(sbi, segno, DIRTY);
sbi              4272 fs/f2fs/segment.c static int init_victim_secmap(struct f2fs_sb_info *sbi)
sbi              4274 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              4275 fs/f2fs/segment.c 	unsigned int bitmap_size = f2fs_bitmap_size(MAIN_SECS(sbi));
sbi              4277 fs/f2fs/segment.c 	dirty_i->victim_secmap = f2fs_kvzalloc(sbi, bitmap_size, GFP_KERNEL);
sbi              4283 fs/f2fs/segment.c static int build_dirty_segmap(struct f2fs_sb_info *sbi)
sbi              4289 fs/f2fs/segment.c 	dirty_i = f2fs_kzalloc(sbi, sizeof(struct dirty_seglist_info),
sbi              4294 fs/f2fs/segment.c 	SM_I(sbi)->dirty_info = dirty_i;
sbi              4297 fs/f2fs/segment.c 	bitmap_size = f2fs_bitmap_size(MAIN_SEGS(sbi));
sbi              4300 fs/f2fs/segment.c 		dirty_i->dirty_segmap[i] = f2fs_kvzalloc(sbi, bitmap_size,
sbi              4306 fs/f2fs/segment.c 	init_dirty_segmap(sbi);
sbi              4307 fs/f2fs/segment.c 	return init_victim_secmap(sbi);
sbi              4310 fs/f2fs/segment.c static int sanity_check_curseg(struct f2fs_sb_info *sbi)
sbi              4319 fs/f2fs/segment.c 		struct curseg_info *curseg = CURSEG_I(sbi, i);
sbi              4320 fs/f2fs/segment.c 		struct seg_entry *se = get_seg_entry(sbi, curseg->segno);
sbi              4329 fs/f2fs/segment.c 		for (blkofs += 1; blkofs < sbi->blocks_per_seg; blkofs++) {
sbi              4333 fs/f2fs/segment.c 			f2fs_err(sbi,
sbi              4346 fs/f2fs/segment.c static void init_min_max_mtime(struct f2fs_sb_info *sbi)
sbi              4348 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              4355 fs/f2fs/segment.c 	for (segno = 0; segno < MAIN_SEGS(sbi); segno += sbi->segs_per_sec) {
sbi              4359 fs/f2fs/segment.c 		for (i = 0; i < sbi->segs_per_sec; i++)
sbi              4360 fs/f2fs/segment.c 			mtime += get_seg_entry(sbi, segno + i)->mtime;
sbi              4362 fs/f2fs/segment.c 		mtime = div_u64(mtime, sbi->segs_per_sec);
sbi              4367 fs/f2fs/segment.c 	sit_i->max_mtime = get_mtime(sbi, false);
sbi              4371 fs/f2fs/segment.c int f2fs_build_segment_manager(struct f2fs_sb_info *sbi)
sbi              4373 fs/f2fs/segment.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi              4374 fs/f2fs/segment.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              4378 fs/f2fs/segment.c 	sm_info = f2fs_kzalloc(sbi, sizeof(struct f2fs_sm_info), GFP_KERNEL);
sbi              4383 fs/f2fs/segment.c 	sbi->sm_info = sm_info;
sbi              4396 fs/f2fs/segment.c 	if (!test_opt(sbi, LFS))
sbi              4400 fs/f2fs/segment.c 	sm_info->min_seq_blocks = sbi->blocks_per_seg * sbi->segs_per_sec;
sbi              4402 fs/f2fs/segment.c 	sm_info->min_ssr_sections = reserved_sections(sbi);
sbi              4408 fs/f2fs/segment.c 	if (!f2fs_readonly(sbi->sb)) {
sbi              4409 fs/f2fs/segment.c 		err = f2fs_create_flush_cmd_control(sbi);
sbi              4414 fs/f2fs/segment.c 	err = create_discard_cmd_control(sbi);
sbi              4418 fs/f2fs/segment.c 	err = build_sit_info(sbi);
sbi              4421 fs/f2fs/segment.c 	err = build_free_segmap(sbi);
sbi              4424 fs/f2fs/segment.c 	err = build_curseg(sbi);
sbi              4429 fs/f2fs/segment.c 	err = build_sit_entries(sbi);
sbi              4433 fs/f2fs/segment.c 	init_free_segmap(sbi);
sbi              4434 fs/f2fs/segment.c 	err = build_dirty_segmap(sbi);
sbi              4438 fs/f2fs/segment.c 	err = sanity_check_curseg(sbi);
sbi              4442 fs/f2fs/segment.c 	init_min_max_mtime(sbi);
sbi              4446 fs/f2fs/segment.c static void discard_dirty_segmap(struct f2fs_sb_info *sbi,
sbi              4449 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              4457 fs/f2fs/segment.c static void destroy_victim_secmap(struct f2fs_sb_info *sbi)
sbi              4459 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              4463 fs/f2fs/segment.c static void destroy_dirty_segmap(struct f2fs_sb_info *sbi)
sbi              4465 fs/f2fs/segment.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi              4473 fs/f2fs/segment.c 		discard_dirty_segmap(sbi, i);
sbi              4475 fs/f2fs/segment.c 	destroy_victim_secmap(sbi);
sbi              4476 fs/f2fs/segment.c 	SM_I(sbi)->dirty_info = NULL;
sbi              4480 fs/f2fs/segment.c static void destroy_curseg(struct f2fs_sb_info *sbi)
sbi              4482 fs/f2fs/segment.c 	struct curseg_info *array = SM_I(sbi)->curseg_array;
sbi              4487 fs/f2fs/segment.c 	SM_I(sbi)->curseg_array = NULL;
sbi              4495 fs/f2fs/segment.c static void destroy_free_segmap(struct f2fs_sb_info *sbi)
sbi              4497 fs/f2fs/segment.c 	struct free_segmap_info *free_i = SM_I(sbi)->free_info;
sbi              4500 fs/f2fs/segment.c 	SM_I(sbi)->free_info = NULL;
sbi              4506 fs/f2fs/segment.c static void destroy_sit_info(struct f2fs_sb_info *sbi)
sbi              4508 fs/f2fs/segment.c 	struct sit_info *sit_i = SIT_I(sbi);
sbi              4521 fs/f2fs/segment.c 	SM_I(sbi)->sit_info = NULL;
sbi              4530 fs/f2fs/segment.c void f2fs_destroy_segment_manager(struct f2fs_sb_info *sbi)
sbi              4532 fs/f2fs/segment.c 	struct f2fs_sm_info *sm_info = SM_I(sbi);
sbi              4536 fs/f2fs/segment.c 	f2fs_destroy_flush_cmd_control(sbi, true);
sbi              4537 fs/f2fs/segment.c 	destroy_discard_cmd_control(sbi);
sbi              4538 fs/f2fs/segment.c 	destroy_dirty_segmap(sbi);
sbi              4539 fs/f2fs/segment.c 	destroy_curseg(sbi);
sbi              4540 fs/f2fs/segment.c 	destroy_free_segmap(sbi);
sbi              4541 fs/f2fs/segment.c 	destroy_sit_info(sbi);
sbi              4542 fs/f2fs/segment.c 	sbi->sm_info = NULL;
sbi                31 fs/f2fs/segment.h #define IS_CURSEG(sbi, seg)						\
sbi                32 fs/f2fs/segment.h 	(((seg) == CURSEG_I(sbi, CURSEG_HOT_DATA)->segno) ||	\
sbi                33 fs/f2fs/segment.h 	 ((seg) == CURSEG_I(sbi, CURSEG_WARM_DATA)->segno) ||	\
sbi                34 fs/f2fs/segment.h 	 ((seg) == CURSEG_I(sbi, CURSEG_COLD_DATA)->segno) ||	\
sbi                35 fs/f2fs/segment.h 	 ((seg) == CURSEG_I(sbi, CURSEG_HOT_NODE)->segno) ||	\
sbi                36 fs/f2fs/segment.h 	 ((seg) == CURSEG_I(sbi, CURSEG_WARM_NODE)->segno) ||	\
sbi                37 fs/f2fs/segment.h 	 ((seg) == CURSEG_I(sbi, CURSEG_COLD_NODE)->segno))
sbi                39 fs/f2fs/segment.h #define IS_CURSEC(sbi, secno)						\
sbi                40 fs/f2fs/segment.h 	(((secno) == CURSEG_I(sbi, CURSEG_HOT_DATA)->segno /		\
sbi                41 fs/f2fs/segment.h 	  (sbi)->segs_per_sec) ||	\
sbi                42 fs/f2fs/segment.h 	 ((secno) == CURSEG_I(sbi, CURSEG_WARM_DATA)->segno /		\
sbi                43 fs/f2fs/segment.h 	  (sbi)->segs_per_sec) ||	\
sbi                44 fs/f2fs/segment.h 	 ((secno) == CURSEG_I(sbi, CURSEG_COLD_DATA)->segno /		\
sbi                45 fs/f2fs/segment.h 	  (sbi)->segs_per_sec) ||	\
sbi                46 fs/f2fs/segment.h 	 ((secno) == CURSEG_I(sbi, CURSEG_HOT_NODE)->segno /		\
sbi                47 fs/f2fs/segment.h 	  (sbi)->segs_per_sec) ||	\
sbi                48 fs/f2fs/segment.h 	 ((secno) == CURSEG_I(sbi, CURSEG_WARM_NODE)->segno /		\
sbi                49 fs/f2fs/segment.h 	  (sbi)->segs_per_sec) ||	\
sbi                50 fs/f2fs/segment.h 	 ((secno) == CURSEG_I(sbi, CURSEG_COLD_NODE)->segno /		\
sbi                51 fs/f2fs/segment.h 	  (sbi)->segs_per_sec))	\
sbi                53 fs/f2fs/segment.h #define MAIN_BLKADDR(sbi)						\
sbi                54 fs/f2fs/segment.h 	(SM_I(sbi) ? SM_I(sbi)->main_blkaddr : 				\
sbi                55 fs/f2fs/segment.h 		le32_to_cpu(F2FS_RAW_SUPER(sbi)->main_blkaddr))
sbi                56 fs/f2fs/segment.h #define SEG0_BLKADDR(sbi)						\
sbi                57 fs/f2fs/segment.h 	(SM_I(sbi) ? SM_I(sbi)->seg0_blkaddr : 				\
sbi                58 fs/f2fs/segment.h 		le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment0_blkaddr))
sbi                60 fs/f2fs/segment.h #define MAIN_SEGS(sbi)	(SM_I(sbi)->main_segments)
sbi                61 fs/f2fs/segment.h #define MAIN_SECS(sbi)	((sbi)->total_sections)
sbi                63 fs/f2fs/segment.h #define TOTAL_SEGS(sbi)							\
sbi                64 fs/f2fs/segment.h 	(SM_I(sbi) ? SM_I(sbi)->segment_count : 				\
sbi                65 fs/f2fs/segment.h 		le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count))
sbi                66 fs/f2fs/segment.h #define TOTAL_BLKS(sbi)	(TOTAL_SEGS(sbi) << (sbi)->log_blocks_per_seg)
sbi                68 fs/f2fs/segment.h #define MAX_BLKADDR(sbi)	(SEG0_BLKADDR(sbi) + TOTAL_BLKS(sbi))
sbi                69 fs/f2fs/segment.h #define SEGMENT_SIZE(sbi)	(1ULL << ((sbi)->log_blocksize +	\
sbi                70 fs/f2fs/segment.h 					(sbi)->log_blocks_per_seg))
sbi                72 fs/f2fs/segment.h #define START_BLOCK(sbi, segno)	(SEG0_BLKADDR(sbi) +			\
sbi                73 fs/f2fs/segment.h 	 (GET_R2L_SEGNO(FREE_I(sbi), segno) << (sbi)->log_blocks_per_seg))
sbi                75 fs/f2fs/segment.h #define NEXT_FREE_BLKADDR(sbi, curseg)					\
sbi                76 fs/f2fs/segment.h 	(START_BLOCK(sbi, (curseg)->segno) + (curseg)->next_blkoff)
sbi                78 fs/f2fs/segment.h #define GET_SEGOFF_FROM_SEG0(sbi, blk_addr)	((blk_addr) - SEG0_BLKADDR(sbi))
sbi                79 fs/f2fs/segment.h #define GET_SEGNO_FROM_SEG0(sbi, blk_addr)				\
sbi                80 fs/f2fs/segment.h 	(GET_SEGOFF_FROM_SEG0(sbi, blk_addr) >> (sbi)->log_blocks_per_seg)
sbi                81 fs/f2fs/segment.h #define GET_BLKOFF_FROM_SEG0(sbi, blk_addr)				\
sbi                82 fs/f2fs/segment.h 	(GET_SEGOFF_FROM_SEG0(sbi, blk_addr) & ((sbi)->blocks_per_seg - 1))
sbi                84 fs/f2fs/segment.h #define GET_SEGNO(sbi, blk_addr)					\
sbi                86 fs/f2fs/segment.h 	NULL_SEGNO : GET_L2R_SEGNO(FREE_I(sbi),			\
sbi                87 fs/f2fs/segment.h 		GET_SEGNO_FROM_SEG0(sbi, blk_addr)))
sbi                88 fs/f2fs/segment.h #define BLKS_PER_SEC(sbi)					\
sbi                89 fs/f2fs/segment.h 	((sbi)->segs_per_sec * (sbi)->blocks_per_seg)
sbi                90 fs/f2fs/segment.h #define GET_SEC_FROM_SEG(sbi, segno)				\
sbi                91 fs/f2fs/segment.h 	((segno) / (sbi)->segs_per_sec)
sbi                92 fs/f2fs/segment.h #define GET_SEG_FROM_SEC(sbi, secno)				\
sbi                93 fs/f2fs/segment.h 	((secno) * (sbi)->segs_per_sec)
sbi                94 fs/f2fs/segment.h #define GET_ZONE_FROM_SEC(sbi, secno)				\
sbi                95 fs/f2fs/segment.h 	((secno) / (sbi)->secs_per_zone)
sbi                96 fs/f2fs/segment.h #define GET_ZONE_FROM_SEG(sbi, segno)				\
sbi                97 fs/f2fs/segment.h 	GET_ZONE_FROM_SEC(sbi, GET_SEC_FROM_SEG(sbi, segno))
sbi                99 fs/f2fs/segment.h #define GET_SUM_BLOCK(sbi, segno)				\
sbi               100 fs/f2fs/segment.h 	((sbi)->sm_info->ssa_blkaddr + (segno))
sbi               111 fs/f2fs/segment.h #define SIT_BLK_CNT(sbi)			\
sbi               112 fs/f2fs/segment.h 	DIV_ROUND_UP(MAIN_SEGS(sbi), SIT_ENTRY_PER_BLOCK)
sbi               314 fs/f2fs/segment.h static inline struct curseg_info *CURSEG_I(struct f2fs_sb_info *sbi, int type)
sbi               316 fs/f2fs/segment.h 	return (struct curseg_info *)(SM_I(sbi)->curseg_array + type);
sbi               319 fs/f2fs/segment.h static inline struct seg_entry *get_seg_entry(struct f2fs_sb_info *sbi,
sbi               322 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               326 fs/f2fs/segment.h static inline struct sec_entry *get_sec_entry(struct f2fs_sb_info *sbi,
sbi               329 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               330 fs/f2fs/segment.h 	return &sit_i->sec_entries[GET_SEC_FROM_SEG(sbi, segno)];
sbi               333 fs/f2fs/segment.h static inline unsigned int get_valid_blocks(struct f2fs_sb_info *sbi,
sbi               340 fs/f2fs/segment.h 	if (use_section && __is_large_section(sbi))
sbi               341 fs/f2fs/segment.h 		return get_sec_entry(sbi, segno)->valid_blocks;
sbi               343 fs/f2fs/segment.h 		return get_seg_entry(sbi, segno)->valid_blocks;
sbi               346 fs/f2fs/segment.h static inline unsigned int get_ckpt_valid_blocks(struct f2fs_sb_info *sbi,
sbi               349 fs/f2fs/segment.h 	return get_seg_entry(sbi, segno)->ckpt_valid_blocks;
sbi               376 fs/f2fs/segment.h static inline void seg_info_to_sit_page(struct f2fs_sb_info *sbi,
sbi               383 fs/f2fs/segment.h 					(unsigned long)MAIN_SEGS(sbi));
sbi               390 fs/f2fs/segment.h 		se = get_seg_entry(sbi, start + i);
sbi               414 fs/f2fs/segment.h static inline void __set_free(struct f2fs_sb_info *sbi, unsigned int segno)
sbi               416 fs/f2fs/segment.h 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi               417 fs/f2fs/segment.h 	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               418 fs/f2fs/segment.h 	unsigned int start_segno = GET_SEG_FROM_SEC(sbi, secno);
sbi               426 fs/f2fs/segment.h 			start_segno + sbi->segs_per_sec, start_segno);
sbi               427 fs/f2fs/segment.h 	if (next >= start_segno + sbi->segs_per_sec) {
sbi               434 fs/f2fs/segment.h static inline void __set_inuse(struct f2fs_sb_info *sbi,
sbi               437 fs/f2fs/segment.h 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi               438 fs/f2fs/segment.h 	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               446 fs/f2fs/segment.h static inline void __set_test_and_free(struct f2fs_sb_info *sbi,
sbi               449 fs/f2fs/segment.h 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi               450 fs/f2fs/segment.h 	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               451 fs/f2fs/segment.h 	unsigned int start_segno = GET_SEG_FROM_SEC(sbi, secno);
sbi               458 fs/f2fs/segment.h 		if (IS_CURSEC(sbi, secno))
sbi               461 fs/f2fs/segment.h 				start_segno + sbi->segs_per_sec, start_segno);
sbi               462 fs/f2fs/segment.h 		if (next >= start_segno + sbi->segs_per_sec) {
sbi               471 fs/f2fs/segment.h static inline void __set_test_and_inuse(struct f2fs_sb_info *sbi,
sbi               474 fs/f2fs/segment.h 	struct free_segmap_info *free_i = FREE_I(sbi);
sbi               475 fs/f2fs/segment.h 	unsigned int secno = GET_SEC_FROM_SEG(sbi, segno);
sbi               486 fs/f2fs/segment.h static inline void get_sit_bitmap(struct f2fs_sb_info *sbi,
sbi               489 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               494 fs/f2fs/segment.h 		f2fs_bug_on(sbi, 1);
sbi               499 fs/f2fs/segment.h static inline block_t written_block_count(struct f2fs_sb_info *sbi)
sbi               501 fs/f2fs/segment.h 	return SIT_I(sbi)->written_valid_blocks;
sbi               504 fs/f2fs/segment.h static inline unsigned int free_segments(struct f2fs_sb_info *sbi)
sbi               506 fs/f2fs/segment.h 	return FREE_I(sbi)->free_segments;
sbi               509 fs/f2fs/segment.h static inline int reserved_segments(struct f2fs_sb_info *sbi)
sbi               511 fs/f2fs/segment.h 	return SM_I(sbi)->reserved_segments;
sbi               514 fs/f2fs/segment.h static inline unsigned int free_sections(struct f2fs_sb_info *sbi)
sbi               516 fs/f2fs/segment.h 	return FREE_I(sbi)->free_sections;
sbi               519 fs/f2fs/segment.h static inline unsigned int prefree_segments(struct f2fs_sb_info *sbi)
sbi               521 fs/f2fs/segment.h 	return DIRTY_I(sbi)->nr_dirty[PRE];
sbi               524 fs/f2fs/segment.h static inline unsigned int dirty_segments(struct f2fs_sb_info *sbi)
sbi               526 fs/f2fs/segment.h 	return DIRTY_I(sbi)->nr_dirty[DIRTY_HOT_DATA] +
sbi               527 fs/f2fs/segment.h 		DIRTY_I(sbi)->nr_dirty[DIRTY_WARM_DATA] +
sbi               528 fs/f2fs/segment.h 		DIRTY_I(sbi)->nr_dirty[DIRTY_COLD_DATA] +
sbi               529 fs/f2fs/segment.h 		DIRTY_I(sbi)->nr_dirty[DIRTY_HOT_NODE] +
sbi               530 fs/f2fs/segment.h 		DIRTY_I(sbi)->nr_dirty[DIRTY_WARM_NODE] +
sbi               531 fs/f2fs/segment.h 		DIRTY_I(sbi)->nr_dirty[DIRTY_COLD_NODE];
sbi               534 fs/f2fs/segment.h static inline int overprovision_segments(struct f2fs_sb_info *sbi)
sbi               536 fs/f2fs/segment.h 	return SM_I(sbi)->ovp_segments;
sbi               539 fs/f2fs/segment.h static inline int reserved_sections(struct f2fs_sb_info *sbi)
sbi               541 fs/f2fs/segment.h 	return GET_SEC_FROM_SEG(sbi, (unsigned int)reserved_segments(sbi));
sbi               544 fs/f2fs/segment.h static inline bool has_curseg_enough_space(struct f2fs_sb_info *sbi)
sbi               546 fs/f2fs/segment.h 	unsigned int node_blocks = get_pages(sbi, F2FS_DIRTY_NODES) +
sbi               547 fs/f2fs/segment.h 					get_pages(sbi, F2FS_DIRTY_DENTS);
sbi               548 fs/f2fs/segment.h 	unsigned int dent_blocks = get_pages(sbi, F2FS_DIRTY_DENTS);
sbi               554 fs/f2fs/segment.h 		segno = CURSEG_I(sbi, i)->segno;
sbi               555 fs/f2fs/segment.h 		left_blocks = sbi->blocks_per_seg -
sbi               556 fs/f2fs/segment.h 			get_seg_entry(sbi, segno)->ckpt_valid_blocks;
sbi               563 fs/f2fs/segment.h 	segno = CURSEG_I(sbi, CURSEG_HOT_DATA)->segno;
sbi               564 fs/f2fs/segment.h 	left_blocks = sbi->blocks_per_seg -
sbi               565 fs/f2fs/segment.h 			get_seg_entry(sbi, segno)->ckpt_valid_blocks;
sbi               571 fs/f2fs/segment.h static inline bool has_not_enough_free_secs(struct f2fs_sb_info *sbi,
sbi               574 fs/f2fs/segment.h 	int node_secs = get_blocktype_secs(sbi, F2FS_DIRTY_NODES);
sbi               575 fs/f2fs/segment.h 	int dent_secs = get_blocktype_secs(sbi, F2FS_DIRTY_DENTS);
sbi               576 fs/f2fs/segment.h 	int imeta_secs = get_blocktype_secs(sbi, F2FS_DIRTY_IMETA);
sbi               578 fs/f2fs/segment.h 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi               581 fs/f2fs/segment.h 	if (free_sections(sbi) + freed == reserved_sections(sbi) + needed &&
sbi               582 fs/f2fs/segment.h 			has_curseg_enough_space(sbi))
sbi               584 fs/f2fs/segment.h 	return (free_sections(sbi) + freed) <=
sbi               586 fs/f2fs/segment.h 		reserved_sections(sbi) + needed);
sbi               589 fs/f2fs/segment.h static inline bool f2fs_is_checkpoint_ready(struct f2fs_sb_info *sbi)
sbi               591 fs/f2fs/segment.h 	if (likely(!is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi               593 fs/f2fs/segment.h 	if (likely(!has_not_enough_free_secs(sbi, 0, 0)))
sbi               598 fs/f2fs/segment.h static inline bool excess_prefree_segs(struct f2fs_sb_info *sbi)
sbi               600 fs/f2fs/segment.h 	return prefree_segments(sbi) > SM_I(sbi)->rec_prefree_segments;
sbi               603 fs/f2fs/segment.h static inline int utilization(struct f2fs_sb_info *sbi)
sbi               605 fs/f2fs/segment.h 	return div_u64((u64)valid_user_blocks(sbi) * 100,
sbi               606 fs/f2fs/segment.h 					sbi->user_block_count);
sbi               638 fs/f2fs/segment.h static inline unsigned int curseg_segno(struct f2fs_sb_info *sbi,
sbi               641 fs/f2fs/segment.h 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi               645 fs/f2fs/segment.h static inline unsigned char curseg_alloc_type(struct f2fs_sb_info *sbi,
sbi               648 fs/f2fs/segment.h 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi               652 fs/f2fs/segment.h static inline unsigned short curseg_blkoff(struct f2fs_sb_info *sbi, int type)
sbi               654 fs/f2fs/segment.h 	struct curseg_info *curseg = CURSEG_I(sbi, type);
sbi               658 fs/f2fs/segment.h static inline void check_seg_range(struct f2fs_sb_info *sbi, unsigned int segno)
sbi               660 fs/f2fs/segment.h 	f2fs_bug_on(sbi, segno > TOTAL_SEGS(sbi) - 1);
sbi               665 fs/f2fs/segment.h 	struct f2fs_sb_info *sbi = fio->sbi;
sbi               668 fs/f2fs/segment.h 		verify_blkaddr(sbi, fio->old_blkaddr, __is_meta_io(fio) ?
sbi               670 fs/f2fs/segment.h 	verify_blkaddr(sbi, fio->new_blkaddr, __is_meta_io(fio) ?
sbi               677 fs/f2fs/segment.h static inline int check_block_count(struct f2fs_sb_info *sbi,
sbi               688 fs/f2fs/segment.h 					sbi->blocks_per_seg,
sbi               693 fs/f2fs/segment.h 					sbi->blocks_per_seg,
sbi               697 fs/f2fs/segment.h 	} while (cur_pos < sbi->blocks_per_seg);
sbi               700 fs/f2fs/segment.h 		f2fs_err(sbi, "Mismatch valid blocks %d vs. %d",
sbi               702 fs/f2fs/segment.h 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               707 fs/f2fs/segment.h 	if (unlikely(GET_SIT_VBLOCKS(raw_sit) > sbi->blocks_per_seg
sbi               708 fs/f2fs/segment.h 					|| segno > TOTAL_SEGS(sbi) - 1)) {
sbi               709 fs/f2fs/segment.h 		f2fs_err(sbi, "Wrong valid blocks %d or segno %u",
sbi               711 fs/f2fs/segment.h 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi               717 fs/f2fs/segment.h static inline pgoff_t current_sit_addr(struct f2fs_sb_info *sbi,
sbi               720 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               724 fs/f2fs/segment.h 	check_seg_range(sbi, start);
sbi               729 fs/f2fs/segment.h 		f2fs_bug_on(sbi, 1);
sbi               739 fs/f2fs/segment.h static inline pgoff_t next_sit_addr(struct f2fs_sb_info *sbi,
sbi               742 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               762 fs/f2fs/segment.h static inline unsigned long long get_mtime(struct f2fs_sb_info *sbi,
sbi               765 fs/f2fs/segment.h 	struct sit_info *sit_i = SIT_I(sbi);
sbi               789 fs/f2fs/segment.h static inline block_t start_sum_block(struct f2fs_sb_info *sbi)
sbi               791 fs/f2fs/segment.h 	return __start_cp_addr(sbi) +
sbi               792 fs/f2fs/segment.h 		le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_start_sum);
sbi               795 fs/f2fs/segment.h static inline block_t sum_blk_addr(struct f2fs_sb_info *sbi, int base, int type)
sbi               797 fs/f2fs/segment.h 	return __start_cp_addr(sbi) +
sbi               798 fs/f2fs/segment.h 		le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_total_block_count)
sbi               802 fs/f2fs/segment.h static inline bool sec_usage_check(struct f2fs_sb_info *sbi, unsigned int secno)
sbi               804 fs/f2fs/segment.h 	if (IS_CURSEC(sbi, secno) || (sbi->cur_victim_sec == secno))
sbi               816 fs/f2fs/segment.h static inline int nr_pages_to_skip(struct f2fs_sb_info *sbi, int type)
sbi               818 fs/f2fs/segment.h 	if (sbi->sb->s_bdi->wb.dirty_exceeded)
sbi               822 fs/f2fs/segment.h 		return sbi->blocks_per_seg;
sbi               824 fs/f2fs/segment.h 		return 8 * sbi->blocks_per_seg;
sbi               834 fs/f2fs/segment.h static inline long nr_pages_to_write(struct f2fs_sb_info *sbi, int type,
sbi               851 fs/f2fs/segment.h static inline void wake_up_discard_thread(struct f2fs_sb_info *sbi, bool force)
sbi               853 fs/f2fs/segment.h 	struct discard_cmd_control *dcc = SM_I(sbi)->dcc_info;
sbi               870 fs/f2fs/segment.h 	if (!wakeup || !is_idle(sbi, DISCARD_TIME))
sbi                19 fs/f2fs/shrinker.c static unsigned long __count_nat_entries(struct f2fs_sb_info *sbi)
sbi                21 fs/f2fs/shrinker.c 	long count = NM_I(sbi)->nat_cnt - NM_I(sbi)->dirty_nat_cnt;
sbi                26 fs/f2fs/shrinker.c static unsigned long __count_free_nids(struct f2fs_sb_info *sbi)
sbi                28 fs/f2fs/shrinker.c 	long count = NM_I(sbi)->nid_cnt[FREE_NID] - MAX_FREE_NIDS;
sbi                33 fs/f2fs/shrinker.c static unsigned long __count_extent_cache(struct f2fs_sb_info *sbi)
sbi                35 fs/f2fs/shrinker.c 	return atomic_read(&sbi->total_zombie_tree) +
sbi                36 fs/f2fs/shrinker.c 				atomic_read(&sbi->total_ext_node);
sbi                42 fs/f2fs/shrinker.c 	struct f2fs_sb_info *sbi;
sbi                49 fs/f2fs/shrinker.c 		sbi = list_entry(p, struct f2fs_sb_info, s_list);
sbi                52 fs/f2fs/shrinker.c 		if (!mutex_trylock(&sbi->umount_mutex)) {
sbi                59 fs/f2fs/shrinker.c 		count += __count_extent_cache(sbi);
sbi                62 fs/f2fs/shrinker.c 		count += __count_nat_entries(sbi);
sbi                65 fs/f2fs/shrinker.c 		count += __count_free_nids(sbi);
sbi                69 fs/f2fs/shrinker.c 		mutex_unlock(&sbi->umount_mutex);
sbi                79 fs/f2fs/shrinker.c 	struct f2fs_sb_info *sbi;
sbi                90 fs/f2fs/shrinker.c 		sbi = list_entry(p, struct f2fs_sb_info, s_list);
sbi                92 fs/f2fs/shrinker.c 		if (sbi->shrinker_run_no == run_no)
sbi                96 fs/f2fs/shrinker.c 		if (!mutex_trylock(&sbi->umount_mutex)) {
sbi               102 fs/f2fs/shrinker.c 		sbi->shrinker_run_no = run_no;
sbi               105 fs/f2fs/shrinker.c 		freed += f2fs_shrink_extent_tree(sbi, nr >> 1);
sbi               109 fs/f2fs/shrinker.c 			freed += f2fs_try_to_free_nats(sbi, nr - freed);
sbi               113 fs/f2fs/shrinker.c 			freed += f2fs_try_to_free_nids(sbi, nr - freed);
sbi               117 fs/f2fs/shrinker.c 		list_move_tail(&sbi->s_list, &f2fs_list);
sbi               118 fs/f2fs/shrinker.c 		mutex_unlock(&sbi->umount_mutex);
sbi               126 fs/f2fs/shrinker.c void f2fs_join_shrinker(struct f2fs_sb_info *sbi)
sbi               129 fs/f2fs/shrinker.c 	list_add_tail(&sbi->s_list, &f2fs_list);
sbi               133 fs/f2fs/shrinker.c void f2fs_leave_shrinker(struct f2fs_sb_info *sbi)
sbi               135 fs/f2fs/shrinker.c 	f2fs_shrink_extent_tree(sbi, __count_extent_cache(sbi));
sbi               138 fs/f2fs/shrinker.c 	list_del_init(&sbi->s_list);
sbi                60 fs/f2fs/super.c void f2fs_build_fault_attr(struct f2fs_sb_info *sbi, unsigned int rate,
sbi                63 fs/f2fs/super.c 	struct f2fs_fault_info *ffi = &F2FS_OPTION(sbi).fault_info;
sbi               209 fs/f2fs/super.c void f2fs_printk(struct f2fs_sb_info *sbi, const char *fmt, ...)
sbi               221 fs/f2fs/super.c 	       KERN_SOH_ASCII, level, sbi->sb->s_id, &vaf);
sbi               256 fs/f2fs/super.c static inline void limit_reserve_root(struct f2fs_sb_info *sbi)
sbi               258 fs/f2fs/super.c 	block_t limit = min((sbi->user_block_count << 1) / 1000,
sbi               259 fs/f2fs/super.c 			sbi->user_block_count - sbi->reserved_blocks);
sbi               262 fs/f2fs/super.c 	if (test_opt(sbi, RESERVE_ROOT) &&
sbi               263 fs/f2fs/super.c 			F2FS_OPTION(sbi).root_reserved_blocks > limit) {
sbi               264 fs/f2fs/super.c 		F2FS_OPTION(sbi).root_reserved_blocks = limit;
sbi               265 fs/f2fs/super.c 		f2fs_info(sbi, "Reduce reserved blocks for root = %u",
sbi               266 fs/f2fs/super.c 			  F2FS_OPTION(sbi).root_reserved_blocks);
sbi               268 fs/f2fs/super.c 	if (!test_opt(sbi, RESERVE_ROOT) &&
sbi               269 fs/f2fs/super.c 		(!uid_eq(F2FS_OPTION(sbi).s_resuid,
sbi               271 fs/f2fs/super.c 		!gid_eq(F2FS_OPTION(sbi).s_resgid,
sbi               273 fs/f2fs/super.c 		f2fs_info(sbi, "Ignore s_resuid=%u, s_resgid=%u w/o reserve_root",
sbi               275 fs/f2fs/super.c 					   F2FS_OPTION(sbi).s_resuid),
sbi               277 fs/f2fs/super.c 					   F2FS_OPTION(sbi).s_resgid));
sbi               293 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               297 fs/f2fs/super.c 	if (sb_any_quota_loaded(sb) && !F2FS_OPTION(sbi).s_qf_names[qtype]) {
sbi               298 fs/f2fs/super.c 		f2fs_err(sbi, "Cannot change journaled quota options when quota turned on");
sbi               301 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi)) {
sbi               302 fs/f2fs/super.c 		f2fs_info(sbi, "QUOTA feature is enabled, so ignore qf_name");
sbi               308 fs/f2fs/super.c 		f2fs_err(sbi, "Not enough memory for storing quotafile name");
sbi               311 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_qf_names[qtype]) {
sbi               312 fs/f2fs/super.c 		if (strcmp(F2FS_OPTION(sbi).s_qf_names[qtype], qname) == 0)
sbi               315 fs/f2fs/super.c 			f2fs_err(sbi, "%s quota file already specified",
sbi               320 fs/f2fs/super.c 		f2fs_err(sbi, "quotafile must be on filesystem root");
sbi               323 fs/f2fs/super.c 	F2FS_OPTION(sbi).s_qf_names[qtype] = qname;
sbi               324 fs/f2fs/super.c 	set_opt(sbi, QUOTA);
sbi               333 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               335 fs/f2fs/super.c 	if (sb_any_quota_loaded(sb) && F2FS_OPTION(sbi).s_qf_names[qtype]) {
sbi               336 fs/f2fs/super.c 		f2fs_err(sbi, "Cannot change journaled quota options when quota turned on");
sbi               339 fs/f2fs/super.c 	kvfree(F2FS_OPTION(sbi).s_qf_names[qtype]);
sbi               340 fs/f2fs/super.c 	F2FS_OPTION(sbi).s_qf_names[qtype] = NULL;
sbi               344 fs/f2fs/super.c static int f2fs_check_quota_options(struct f2fs_sb_info *sbi)
sbi               351 fs/f2fs/super.c 	if (test_opt(sbi, PRJQUOTA) && !f2fs_sb_has_project_quota(sbi)) {
sbi               352 fs/f2fs/super.c 		f2fs_err(sbi, "Project quota feature not enabled. Cannot enable project quota enforcement.");
sbi               355 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_qf_names[USRQUOTA] ||
sbi               356 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_qf_names[GRPQUOTA] ||
sbi               357 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_qf_names[PRJQUOTA]) {
sbi               358 fs/f2fs/super.c 		if (test_opt(sbi, USRQUOTA) &&
sbi               359 fs/f2fs/super.c 				F2FS_OPTION(sbi).s_qf_names[USRQUOTA])
sbi               360 fs/f2fs/super.c 			clear_opt(sbi, USRQUOTA);
sbi               362 fs/f2fs/super.c 		if (test_opt(sbi, GRPQUOTA) &&
sbi               363 fs/f2fs/super.c 				F2FS_OPTION(sbi).s_qf_names[GRPQUOTA])
sbi               364 fs/f2fs/super.c 			clear_opt(sbi, GRPQUOTA);
sbi               366 fs/f2fs/super.c 		if (test_opt(sbi, PRJQUOTA) &&
sbi               367 fs/f2fs/super.c 				F2FS_OPTION(sbi).s_qf_names[PRJQUOTA])
sbi               368 fs/f2fs/super.c 			clear_opt(sbi, PRJQUOTA);
sbi               370 fs/f2fs/super.c 		if (test_opt(sbi, GRPQUOTA) || test_opt(sbi, USRQUOTA) ||
sbi               371 fs/f2fs/super.c 				test_opt(sbi, PRJQUOTA)) {
sbi               372 fs/f2fs/super.c 			f2fs_err(sbi, "old and new quota format mixing");
sbi               376 fs/f2fs/super.c 		if (!F2FS_OPTION(sbi).s_jquota_fmt) {
sbi               377 fs/f2fs/super.c 			f2fs_err(sbi, "journaled quota format not specified");
sbi               382 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi) && F2FS_OPTION(sbi).s_jquota_fmt) {
sbi               383 fs/f2fs/super.c 		f2fs_info(sbi, "QUOTA feature is enabled, so ignore jquota_fmt");
sbi               384 fs/f2fs/super.c 		F2FS_OPTION(sbi).s_jquota_fmt = 0;
sbi               392 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               423 fs/f2fs/super.c 				set_opt(sbi, BG_GC);
sbi               424 fs/f2fs/super.c 				clear_opt(sbi, FORCE_FG_GC);
sbi               426 fs/f2fs/super.c 				clear_opt(sbi, BG_GC);
sbi               427 fs/f2fs/super.c 				clear_opt(sbi, FORCE_FG_GC);
sbi               429 fs/f2fs/super.c 				set_opt(sbi, BG_GC);
sbi               430 fs/f2fs/super.c 				set_opt(sbi, FORCE_FG_GC);
sbi               438 fs/f2fs/super.c 			set_opt(sbi, DISABLE_ROLL_FORWARD);
sbi               442 fs/f2fs/super.c 			set_opt(sbi, NORECOVERY);
sbi               447 fs/f2fs/super.c 			set_opt(sbi, DISCARD);
sbi               450 fs/f2fs/super.c 			if (f2fs_sb_has_blkzoned(sbi)) {
sbi               451 fs/f2fs/super.c 				f2fs_warn(sbi, "discard is required for zoned block devices");
sbi               454 fs/f2fs/super.c 			clear_opt(sbi, DISCARD);
sbi               457 fs/f2fs/super.c 			set_opt(sbi, NOHEAP);
sbi               460 fs/f2fs/super.c 			clear_opt(sbi, NOHEAP);
sbi               464 fs/f2fs/super.c 			set_opt(sbi, XATTR_USER);
sbi               467 fs/f2fs/super.c 			clear_opt(sbi, XATTR_USER);
sbi               470 fs/f2fs/super.c 			set_opt(sbi, INLINE_XATTR);
sbi               473 fs/f2fs/super.c 			clear_opt(sbi, INLINE_XATTR);
sbi               478 fs/f2fs/super.c 			set_opt(sbi, INLINE_XATTR_SIZE);
sbi               479 fs/f2fs/super.c 			F2FS_OPTION(sbi).inline_xattr_size = arg;
sbi               483 fs/f2fs/super.c 			f2fs_info(sbi, "user_xattr options not supported");
sbi               486 fs/f2fs/super.c 			f2fs_info(sbi, "nouser_xattr options not supported");
sbi               489 fs/f2fs/super.c 			f2fs_info(sbi, "inline_xattr options not supported");
sbi               492 fs/f2fs/super.c 			f2fs_info(sbi, "noinline_xattr options not supported");
sbi               497 fs/f2fs/super.c 			set_opt(sbi, POSIX_ACL);
sbi               500 fs/f2fs/super.c 			clear_opt(sbi, POSIX_ACL);
sbi               504 fs/f2fs/super.c 			f2fs_info(sbi, "acl options not supported");
sbi               507 fs/f2fs/super.c 			f2fs_info(sbi, "noacl options not supported");
sbi               515 fs/f2fs/super.c 			F2FS_OPTION(sbi).active_logs = arg;
sbi               518 fs/f2fs/super.c 			set_opt(sbi, DISABLE_EXT_IDENTIFY);
sbi               521 fs/f2fs/super.c 			set_opt(sbi, INLINE_DATA);
sbi               524 fs/f2fs/super.c 			set_opt(sbi, INLINE_DENTRY);
sbi               527 fs/f2fs/super.c 			clear_opt(sbi, INLINE_DENTRY);
sbi               530 fs/f2fs/super.c 			set_opt(sbi, FLUSH_MERGE);
sbi               533 fs/f2fs/super.c 			clear_opt(sbi, FLUSH_MERGE);
sbi               536 fs/f2fs/super.c 			set_opt(sbi, NOBARRIER);
sbi               539 fs/f2fs/super.c 			set_opt(sbi, FASTBOOT);
sbi               542 fs/f2fs/super.c 			set_opt(sbi, EXTENT_CACHE);
sbi               545 fs/f2fs/super.c 			clear_opt(sbi, EXTENT_CACHE);
sbi               548 fs/f2fs/super.c 			clear_opt(sbi, INLINE_DATA);
sbi               551 fs/f2fs/super.c 			set_opt(sbi, DATA_FLUSH);
sbi               556 fs/f2fs/super.c 			if (test_opt(sbi, RESERVE_ROOT)) {
sbi               557 fs/f2fs/super.c 				f2fs_info(sbi, "Preserve previous reserve_root=%u",
sbi               558 fs/f2fs/super.c 					  F2FS_OPTION(sbi).root_reserved_blocks);
sbi               560 fs/f2fs/super.c 				F2FS_OPTION(sbi).root_reserved_blocks = arg;
sbi               561 fs/f2fs/super.c 				set_opt(sbi, RESERVE_ROOT);
sbi               569 fs/f2fs/super.c 				f2fs_err(sbi, "Invalid uid value %d", arg);
sbi               572 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_resuid = uid;
sbi               579 fs/f2fs/super.c 				f2fs_err(sbi, "Invalid gid value %d", arg);
sbi               582 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_resgid = gid;
sbi               591 fs/f2fs/super.c 				if (f2fs_sb_has_blkzoned(sbi)) {
sbi               592 fs/f2fs/super.c 					f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
sbi               596 fs/f2fs/super.c 				set_opt_mode(sbi, F2FS_MOUNT_ADAPTIVE);
sbi               599 fs/f2fs/super.c 				set_opt_mode(sbi, F2FS_MOUNT_LFS);
sbi               610 fs/f2fs/super.c 				f2fs_warn(sbi, "Not support %d, larger than %d",
sbi               614 fs/f2fs/super.c 			F2FS_OPTION(sbi).write_io_size_bits = arg;
sbi               620 fs/f2fs/super.c 			f2fs_build_fault_attr(sbi, arg, F2FS_ALL_FAULT_TYPE);
sbi               621 fs/f2fs/super.c 			set_opt(sbi, FAULT_INJECTION);
sbi               627 fs/f2fs/super.c 			f2fs_build_fault_attr(sbi, 0, arg);
sbi               628 fs/f2fs/super.c 			set_opt(sbi, FAULT_INJECTION);
sbi               632 fs/f2fs/super.c 			f2fs_info(sbi, "fault_injection options not supported");
sbi               636 fs/f2fs/super.c 			f2fs_info(sbi, "fault_type options not supported");
sbi               648 fs/f2fs/super.c 			set_opt(sbi, USRQUOTA);
sbi               651 fs/f2fs/super.c 			set_opt(sbi, GRPQUOTA);
sbi               654 fs/f2fs/super.c 			set_opt(sbi, PRJQUOTA);
sbi               687 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_OLD;
sbi               690 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_V0;
sbi               693 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_jquota_fmt = QFMT_VFS_V1;
sbi               696 fs/f2fs/super.c 			clear_opt(sbi, QUOTA);
sbi               697 fs/f2fs/super.c 			clear_opt(sbi, USRQUOTA);
sbi               698 fs/f2fs/super.c 			clear_opt(sbi, GRPQUOTA);
sbi               699 fs/f2fs/super.c 			clear_opt(sbi, PRJQUOTA);
sbi               716 fs/f2fs/super.c 			f2fs_info(sbi, "quota operations not supported");
sbi               725 fs/f2fs/super.c 				F2FS_OPTION(sbi).whint_mode = WHINT_MODE_USER;
sbi               728 fs/f2fs/super.c 				F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF;
sbi               731 fs/f2fs/super.c 				F2FS_OPTION(sbi).whint_mode = WHINT_MODE_FS;
sbi               745 fs/f2fs/super.c 				F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_DEFAULT;
sbi               748 fs/f2fs/super.c 				F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_REUSE;
sbi               761 fs/f2fs/super.c 				F2FS_OPTION(sbi).fsync_mode = FSYNC_MODE_POSIX;
sbi               764 fs/f2fs/super.c 				F2FS_OPTION(sbi).fsync_mode = FSYNC_MODE_STRICT;
sbi               767 fs/f2fs/super.c 				F2FS_OPTION(sbi).fsync_mode =
sbi               777 fs/f2fs/super.c 			if (!f2fs_sb_has_encrypt(sbi)) {
sbi               778 fs/f2fs/super.c 				f2fs_err(sbi, "Encrypt feature is off");
sbi               782 fs/f2fs/super.c 			F2FS_OPTION(sbi).test_dummy_encryption = true;
sbi               783 fs/f2fs/super.c 			f2fs_info(sbi, "Test dummy encryption mode enabled");
sbi               785 fs/f2fs/super.c 			f2fs_info(sbi, "Test dummy encryption mount option ignored");
sbi               794 fs/f2fs/super.c 				F2FS_OPTION(sbi).unusable_cap =
sbi               795 fs/f2fs/super.c 					sbi->user_block_count;
sbi               797 fs/f2fs/super.c 				F2FS_OPTION(sbi).unusable_cap =
sbi               798 fs/f2fs/super.c 					(sbi->user_block_count / 100) *	arg;
sbi               799 fs/f2fs/super.c 			set_opt(sbi, DISABLE_CHECKPOINT);
sbi               804 fs/f2fs/super.c 			F2FS_OPTION(sbi).unusable_cap = arg;
sbi               805 fs/f2fs/super.c 			set_opt(sbi, DISABLE_CHECKPOINT);
sbi               808 fs/f2fs/super.c 			set_opt(sbi, DISABLE_CHECKPOINT);
sbi               811 fs/f2fs/super.c 			clear_opt(sbi, DISABLE_CHECKPOINT);
sbi               814 fs/f2fs/super.c 			f2fs_err(sbi, "Unrecognized mount option \"%s\" or missing value",
sbi               820 fs/f2fs/super.c 	if (f2fs_check_quota_options(sbi))
sbi               823 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi) && !f2fs_readonly(sbi->sb)) {
sbi               824 fs/f2fs/super.c 		f2fs_info(sbi, "Filesystem with quota feature cannot be mounted RDWR without CONFIG_QUOTA");
sbi               827 fs/f2fs/super.c 	if (f2fs_sb_has_project_quota(sbi) && !f2fs_readonly(sbi->sb)) {
sbi               828 fs/f2fs/super.c 		f2fs_err(sbi, "Filesystem with project quota feature cannot be mounted RDWR without CONFIG_QUOTA");
sbi               833 fs/f2fs/super.c 	if (f2fs_sb_has_casefold(sbi)) {
sbi               834 fs/f2fs/super.c 		f2fs_err(sbi,
sbi               840 fs/f2fs/super.c 	if (F2FS_IO_SIZE_BITS(sbi) && !test_opt(sbi, LFS)) {
sbi               841 fs/f2fs/super.c 		f2fs_err(sbi, "Should set mode=lfs with %uKB-sized IO",
sbi               842 fs/f2fs/super.c 			 F2FS_IO_SIZE_KB(sbi));
sbi               846 fs/f2fs/super.c 	if (test_opt(sbi, INLINE_XATTR_SIZE)) {
sbi               849 fs/f2fs/super.c 		if (!f2fs_sb_has_extra_attr(sbi) ||
sbi               850 fs/f2fs/super.c 			!f2fs_sb_has_flexible_inline_xattr(sbi)) {
sbi               851 fs/f2fs/super.c 			f2fs_err(sbi, "extra_attr or flexible_inline_xattr feature is off");
sbi               854 fs/f2fs/super.c 		if (!test_opt(sbi, INLINE_XATTR)) {
sbi               855 fs/f2fs/super.c 			f2fs_err(sbi, "inline_xattr_size option should be set with inline_xattr option");
sbi               862 fs/f2fs/super.c 		if (F2FS_OPTION(sbi).inline_xattr_size < min_size ||
sbi               863 fs/f2fs/super.c 				F2FS_OPTION(sbi).inline_xattr_size > max_size) {
sbi               864 fs/f2fs/super.c 			f2fs_err(sbi, "inline xattr size is out of range: %d ~ %d",
sbi               870 fs/f2fs/super.c 	if (test_opt(sbi, DISABLE_CHECKPOINT) && test_opt(sbi, LFS)) {
sbi               871 fs/f2fs/super.c 		f2fs_err(sbi, "LFS not compatible with checkpoint=disable\n");
sbi               878 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).active_logs != NR_CURSEG_TYPE)
sbi               879 fs/f2fs/super.c 		F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF;
sbi               914 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               921 fs/f2fs/super.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
sbi               922 fs/f2fs/super.c 		if (inode->i_ino == F2FS_NODE_INO(sbi) ||
sbi               923 fs/f2fs/super.c 			inode->i_ino == F2FS_META_INO(sbi)) {
sbi               976 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               979 fs/f2fs/super.c 	spin_lock(&sbi->inode_lock[DIRTY_META]);
sbi               984 fs/f2fs/super.c 		stat_inc_dirty_inode(sbi, DIRTY_META);
sbi               988 fs/f2fs/super.c 				&sbi->inode_list[DIRTY_META]);
sbi               989 fs/f2fs/super.c 		inc_page_count(sbi, F2FS_DIRTY_IMETA);
sbi               991 fs/f2fs/super.c 	spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi               997 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               999 fs/f2fs/super.c 	spin_lock(&sbi->inode_lock[DIRTY_META]);
sbi              1001 fs/f2fs/super.c 		spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              1006 fs/f2fs/super.c 		dec_page_count(sbi, F2FS_DIRTY_IMETA);
sbi              1011 fs/f2fs/super.c 	spin_unlock(&sbi->inode_lock[DIRTY_META]);
sbi              1021 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              1023 fs/f2fs/super.c 	if (inode->i_ino == F2FS_NODE_INO(sbi) ||
sbi              1024 fs/f2fs/super.c 			inode->i_ino == F2FS_META_INO(sbi))
sbi              1042 fs/f2fs/super.c static void destroy_percpu_info(struct f2fs_sb_info *sbi)
sbi              1044 fs/f2fs/super.c 	percpu_counter_destroy(&sbi->alloc_valid_block_count);
sbi              1045 fs/f2fs/super.c 	percpu_counter_destroy(&sbi->total_valid_inode_count);
sbi              1048 fs/f2fs/super.c static void destroy_device_list(struct f2fs_sb_info *sbi)
sbi              1052 fs/f2fs/super.c 	for (i = 0; i < sbi->s_ndevs; i++) {
sbi              1058 fs/f2fs/super.c 	kvfree(sbi->devs);
sbi              1063 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1070 fs/f2fs/super.c 	mutex_lock(&sbi->umount_mutex);
sbi              1077 fs/f2fs/super.c 	if ((is_sbi_flag_set(sbi, SBI_IS_DIRTY) ||
sbi              1078 fs/f2fs/super.c 			!is_set_ckpt_flags(sbi, CP_UMOUNT_FLAG))) {
sbi              1082 fs/f2fs/super.c 		f2fs_write_checkpoint(sbi, &cpc);
sbi              1086 fs/f2fs/super.c 	dropped = f2fs_issue_discard_timeout(sbi);
sbi              1088 fs/f2fs/super.c 	if ((f2fs_hw_support_discard(sbi) || f2fs_hw_should_discard(sbi)) &&
sbi              1089 fs/f2fs/super.c 					!sbi->discard_blks && !dropped) {
sbi              1093 fs/f2fs/super.c 		f2fs_write_checkpoint(sbi, &cpc);
sbi              1100 fs/f2fs/super.c 	f2fs_release_ino_entry(sbi, true);
sbi              1102 fs/f2fs/super.c 	f2fs_leave_shrinker(sbi);
sbi              1103 fs/f2fs/super.c 	mutex_unlock(&sbi->umount_mutex);
sbi              1106 fs/f2fs/super.c 	f2fs_flush_merged_writes(sbi);
sbi              1108 fs/f2fs/super.c 	f2fs_wait_on_all_pages(sbi, F2FS_WB_CP_DATA);
sbi              1110 fs/f2fs/super.c 	f2fs_bug_on(sbi, sbi->fsync_node_num);
sbi              1112 fs/f2fs/super.c 	iput(sbi->node_inode);
sbi              1113 fs/f2fs/super.c 	sbi->node_inode = NULL;
sbi              1115 fs/f2fs/super.c 	iput(sbi->meta_inode);
sbi              1116 fs/f2fs/super.c 	sbi->meta_inode = NULL;
sbi              1122 fs/f2fs/super.c 	f2fs_destroy_stats(sbi);
sbi              1125 fs/f2fs/super.c 	f2fs_destroy_node_manager(sbi);
sbi              1126 fs/f2fs/super.c 	f2fs_destroy_segment_manager(sbi);
sbi              1128 fs/f2fs/super.c 	kvfree(sbi->ckpt);
sbi              1130 fs/f2fs/super.c 	f2fs_unregister_sysfs(sbi);
sbi              1133 fs/f2fs/super.c 	if (sbi->s_chksum_driver)
sbi              1134 fs/f2fs/super.c 		crypto_free_shash(sbi->s_chksum_driver);
sbi              1135 fs/f2fs/super.c 	kvfree(sbi->raw_super);
sbi              1137 fs/f2fs/super.c 	destroy_device_list(sbi);
sbi              1138 fs/f2fs/super.c 	mempool_destroy(sbi->write_io_dummy);
sbi              1141 fs/f2fs/super.c 		kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
sbi              1143 fs/f2fs/super.c 	destroy_percpu_info(sbi);
sbi              1145 fs/f2fs/super.c 		kvfree(sbi->write_io[i]);
sbi              1147 fs/f2fs/super.c 	utf8_unload(sbi->s_encoding);
sbi              1149 fs/f2fs/super.c 	kvfree(sbi);
sbi              1154 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1157 fs/f2fs/super.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi              1159 fs/f2fs/super.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
sbi              1164 fs/f2fs/super.c 	if (unlikely(is_sbi_flag_set(sbi, SBI_POR_DOING)))
sbi              1170 fs/f2fs/super.c 		cpc.reason = __get_cp_reason(sbi);
sbi              1172 fs/f2fs/super.c 		mutex_lock(&sbi->gc_mutex);
sbi              1173 fs/f2fs/super.c 		err = f2fs_write_checkpoint(sbi, &cpc);
sbi              1174 fs/f2fs/super.c 		mutex_unlock(&sbi->gc_mutex);
sbi              1248 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1253 fs/f2fs/super.c 	total_count = le64_to_cpu(sbi->raw_super->block_count);
sbi              1254 fs/f2fs/super.c 	user_block_count = sbi->user_block_count;
sbi              1255 fs/f2fs/super.c 	start_count = le32_to_cpu(sbi->raw_super->segment0_blkaddr);
sbi              1257 fs/f2fs/super.c 	buf->f_bsize = sbi->blocksize;
sbi              1260 fs/f2fs/super.c 	buf->f_bfree = user_block_count - valid_user_blocks(sbi) -
sbi              1261 fs/f2fs/super.c 						sbi->current_reserved_blocks;
sbi              1263 fs/f2fs/super.c 	spin_lock(&sbi->stat_lock);
sbi              1264 fs/f2fs/super.c 	if (unlikely(buf->f_bfree <= sbi->unusable_block_count))
sbi              1267 fs/f2fs/super.c 		buf->f_bfree -= sbi->unusable_block_count;
sbi              1268 fs/f2fs/super.c 	spin_unlock(&sbi->stat_lock);
sbi              1270 fs/f2fs/super.c 	if (buf->f_bfree > F2FS_OPTION(sbi).root_reserved_blocks)
sbi              1272 fs/f2fs/super.c 				F2FS_OPTION(sbi).root_reserved_blocks;
sbi              1276 fs/f2fs/super.c 	avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM;
sbi              1283 fs/f2fs/super.c 		buf->f_ffree = min(avail_node_count - valid_node_count(sbi),
sbi              1304 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1306 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_jquota_fmt) {
sbi              1309 fs/f2fs/super.c 		switch (F2FS_OPTION(sbi).s_jquota_fmt) {
sbi              1323 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_qf_names[USRQUOTA])
sbi              1325 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_qf_names[USRQUOTA]);
sbi              1327 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_qf_names[GRPQUOTA])
sbi              1329 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_qf_names[GRPQUOTA]);
sbi              1331 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).s_qf_names[PRJQUOTA])
sbi              1333 fs/f2fs/super.c 			F2FS_OPTION(sbi).s_qf_names[PRJQUOTA]);
sbi              1339 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(root->d_sb);
sbi              1341 fs/f2fs/super.c 	if (!f2fs_readonly(sbi->sb) && test_opt(sbi, BG_GC)) {
sbi              1342 fs/f2fs/super.c 		if (test_opt(sbi, FORCE_FG_GC))
sbi              1349 fs/f2fs/super.c 	if (test_opt(sbi, DISABLE_ROLL_FORWARD))
sbi              1351 fs/f2fs/super.c 	if (test_opt(sbi, NORECOVERY))
sbi              1353 fs/f2fs/super.c 	if (test_opt(sbi, DISCARD))
sbi              1357 fs/f2fs/super.c 	if (test_opt(sbi, NOHEAP))
sbi              1362 fs/f2fs/super.c 	if (test_opt(sbi, XATTR_USER))
sbi              1366 fs/f2fs/super.c 	if (test_opt(sbi, INLINE_XATTR))
sbi              1370 fs/f2fs/super.c 	if (test_opt(sbi, INLINE_XATTR_SIZE))
sbi              1372 fs/f2fs/super.c 					F2FS_OPTION(sbi).inline_xattr_size);
sbi              1375 fs/f2fs/super.c 	if (test_opt(sbi, POSIX_ACL))
sbi              1380 fs/f2fs/super.c 	if (test_opt(sbi, DISABLE_EXT_IDENTIFY))
sbi              1382 fs/f2fs/super.c 	if (test_opt(sbi, INLINE_DATA))
sbi              1386 fs/f2fs/super.c 	if (test_opt(sbi, INLINE_DENTRY))
sbi              1390 fs/f2fs/super.c 	if (!f2fs_readonly(sbi->sb) && test_opt(sbi, FLUSH_MERGE))
sbi              1392 fs/f2fs/super.c 	if (test_opt(sbi, NOBARRIER))
sbi              1394 fs/f2fs/super.c 	if (test_opt(sbi, FASTBOOT))
sbi              1396 fs/f2fs/super.c 	if (test_opt(sbi, EXTENT_CACHE))
sbi              1400 fs/f2fs/super.c 	if (test_opt(sbi, DATA_FLUSH))
sbi              1404 fs/f2fs/super.c 	if (test_opt(sbi, ADAPTIVE))
sbi              1406 fs/f2fs/super.c 	else if (test_opt(sbi, LFS))
sbi              1408 fs/f2fs/super.c 	seq_printf(seq, ",active_logs=%u", F2FS_OPTION(sbi).active_logs);
sbi              1409 fs/f2fs/super.c 	if (test_opt(sbi, RESERVE_ROOT))
sbi              1411 fs/f2fs/super.c 				F2FS_OPTION(sbi).root_reserved_blocks,
sbi              1413 fs/f2fs/super.c 					F2FS_OPTION(sbi).s_resuid),
sbi              1415 fs/f2fs/super.c 					F2FS_OPTION(sbi).s_resgid));
sbi              1416 fs/f2fs/super.c 	if (F2FS_IO_SIZE_BITS(sbi))
sbi              1418 fs/f2fs/super.c 				F2FS_OPTION(sbi).write_io_size_bits);
sbi              1420 fs/f2fs/super.c 	if (test_opt(sbi, FAULT_INJECTION)) {
sbi              1422 fs/f2fs/super.c 				F2FS_OPTION(sbi).fault_info.inject_rate);
sbi              1424 fs/f2fs/super.c 				F2FS_OPTION(sbi).fault_info.inject_type);
sbi              1428 fs/f2fs/super.c 	if (test_opt(sbi, QUOTA))
sbi              1430 fs/f2fs/super.c 	if (test_opt(sbi, USRQUOTA))
sbi              1432 fs/f2fs/super.c 	if (test_opt(sbi, GRPQUOTA))
sbi              1434 fs/f2fs/super.c 	if (test_opt(sbi, PRJQUOTA))
sbi              1437 fs/f2fs/super.c 	f2fs_show_quota_options(seq, sbi->sb);
sbi              1438 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).whint_mode == WHINT_MODE_USER)
sbi              1440 fs/f2fs/super.c 	else if (F2FS_OPTION(sbi).whint_mode == WHINT_MODE_FS)
sbi              1443 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).test_dummy_encryption)
sbi              1447 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).alloc_mode == ALLOC_MODE_DEFAULT)
sbi              1449 fs/f2fs/super.c 	else if (F2FS_OPTION(sbi).alloc_mode == ALLOC_MODE_REUSE)
sbi              1452 fs/f2fs/super.c 	if (test_opt(sbi, DISABLE_CHECKPOINT))
sbi              1454 fs/f2fs/super.c 				F2FS_OPTION(sbi).unusable_cap);
sbi              1455 fs/f2fs/super.c 	if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_POSIX)
sbi              1457 fs/f2fs/super.c 	else if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_STRICT)
sbi              1459 fs/f2fs/super.c 	else if (F2FS_OPTION(sbi).fsync_mode == FSYNC_MODE_NOBARRIER)
sbi              1464 fs/f2fs/super.c static void default_options(struct f2fs_sb_info *sbi)
sbi              1467 fs/f2fs/super.c 	F2FS_OPTION(sbi).active_logs = NR_CURSEG_TYPE;
sbi              1468 fs/f2fs/super.c 	F2FS_OPTION(sbi).inline_xattr_size = DEFAULT_INLINE_XATTR_ADDRS;
sbi              1469 fs/f2fs/super.c 	F2FS_OPTION(sbi).whint_mode = WHINT_MODE_OFF;
sbi              1470 fs/f2fs/super.c 	F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_DEFAULT;
sbi              1471 fs/f2fs/super.c 	F2FS_OPTION(sbi).fsync_mode = FSYNC_MODE_POSIX;
sbi              1472 fs/f2fs/super.c 	F2FS_OPTION(sbi).test_dummy_encryption = false;
sbi              1473 fs/f2fs/super.c 	F2FS_OPTION(sbi).s_resuid = make_kuid(&init_user_ns, F2FS_DEF_RESUID);
sbi              1474 fs/f2fs/super.c 	F2FS_OPTION(sbi).s_resgid = make_kgid(&init_user_ns, F2FS_DEF_RESGID);
sbi              1476 fs/f2fs/super.c 	set_opt(sbi, BG_GC);
sbi              1477 fs/f2fs/super.c 	set_opt(sbi, INLINE_XATTR);
sbi              1478 fs/f2fs/super.c 	set_opt(sbi, INLINE_DATA);
sbi              1479 fs/f2fs/super.c 	set_opt(sbi, INLINE_DENTRY);
sbi              1480 fs/f2fs/super.c 	set_opt(sbi, EXTENT_CACHE);
sbi              1481 fs/f2fs/super.c 	set_opt(sbi, NOHEAP);
sbi              1482 fs/f2fs/super.c 	clear_opt(sbi, DISABLE_CHECKPOINT);
sbi              1483 fs/f2fs/super.c 	F2FS_OPTION(sbi).unusable_cap = 0;
sbi              1484 fs/f2fs/super.c 	sbi->sb->s_flags |= SB_LAZYTIME;
sbi              1485 fs/f2fs/super.c 	set_opt(sbi, FLUSH_MERGE);
sbi              1486 fs/f2fs/super.c 	set_opt(sbi, DISCARD);
sbi              1487 fs/f2fs/super.c 	if (f2fs_sb_has_blkzoned(sbi))
sbi              1488 fs/f2fs/super.c 		set_opt_mode(sbi, F2FS_MOUNT_LFS);
sbi              1490 fs/f2fs/super.c 		set_opt_mode(sbi, F2FS_MOUNT_ADAPTIVE);
sbi              1493 fs/f2fs/super.c 	set_opt(sbi, XATTR_USER);
sbi              1496 fs/f2fs/super.c 	set_opt(sbi, POSIX_ACL);
sbi              1499 fs/f2fs/super.c 	f2fs_build_fault_attr(sbi, 0, 0);
sbi              1506 fs/f2fs/super.c static int f2fs_disable_checkpoint(struct f2fs_sb_info *sbi)
sbi              1508 fs/f2fs/super.c 	unsigned int s_flags = sbi->sb->s_flags;
sbi              1515 fs/f2fs/super.c 		f2fs_err(sbi, "checkpoint=disable on readonly fs");
sbi              1518 fs/f2fs/super.c 	sbi->sb->s_flags |= SB_ACTIVE;
sbi              1520 fs/f2fs/super.c 	f2fs_update_time(sbi, DISABLE_TIME);
sbi              1522 fs/f2fs/super.c 	while (!f2fs_time_over(sbi, DISABLE_TIME)) {
sbi              1523 fs/f2fs/super.c 		mutex_lock(&sbi->gc_mutex);
sbi              1524 fs/f2fs/super.c 		err = f2fs_gc(sbi, true, false, NULL_SEGNO);
sbi              1533 fs/f2fs/super.c 	ret = sync_filesystem(sbi->sb);
sbi              1539 fs/f2fs/super.c 	unusable = f2fs_get_unusable_blocks(sbi);
sbi              1540 fs/f2fs/super.c 	if (f2fs_disable_cp_again(sbi, unusable)) {
sbi              1545 fs/f2fs/super.c 	mutex_lock(&sbi->gc_mutex);
sbi              1547 fs/f2fs/super.c 	set_sbi_flag(sbi, SBI_CP_DISABLED);
sbi              1548 fs/f2fs/super.c 	err = f2fs_write_checkpoint(sbi, &cpc);
sbi              1552 fs/f2fs/super.c 	spin_lock(&sbi->stat_lock);
sbi              1553 fs/f2fs/super.c 	sbi->unusable_block_count = unusable;
sbi              1554 fs/f2fs/super.c 	spin_unlock(&sbi->stat_lock);
sbi              1557 fs/f2fs/super.c 	mutex_unlock(&sbi->gc_mutex);
sbi              1559 fs/f2fs/super.c 	sbi->sb->s_flags = s_flags;	/* Restore MS_RDONLY status */
sbi              1563 fs/f2fs/super.c static void f2fs_enable_checkpoint(struct f2fs_sb_info *sbi)
sbi              1565 fs/f2fs/super.c 	mutex_lock(&sbi->gc_mutex);
sbi              1566 fs/f2fs/super.c 	f2fs_dirty_to_prefree(sbi);
sbi              1568 fs/f2fs/super.c 	clear_sbi_flag(sbi, SBI_CP_DISABLED);
sbi              1569 fs/f2fs/super.c 	set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1570 fs/f2fs/super.c 	mutex_unlock(&sbi->gc_mutex);
sbi              1572 fs/f2fs/super.c 	f2fs_sync_fs(sbi->sb, 1);
sbi              1577 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1583 fs/f2fs/super.c 	bool no_extent_cache = !test_opt(sbi, EXTENT_CACHE);
sbi              1584 fs/f2fs/super.c 	bool disable_checkpoint = test_opt(sbi, DISABLE_CHECKPOINT);
sbi              1585 fs/f2fs/super.c 	bool no_io_align = !F2FS_IO_ALIGNED(sbi);
sbi              1595 fs/f2fs/super.c 	org_mount_opt = sbi->mount_opt;
sbi              1599 fs/f2fs/super.c 	org_mount_opt.s_jquota_fmt = F2FS_OPTION(sbi).s_jquota_fmt;
sbi              1601 fs/f2fs/super.c 		if (F2FS_OPTION(sbi).s_qf_names[i]) {
sbi              1603 fs/f2fs/super.c 				kstrdup(F2FS_OPTION(sbi).s_qf_names[i],
sbi              1617 fs/f2fs/super.c 	if (!(*flags & SB_RDONLY) && is_sbi_flag_set(sbi, SBI_NEED_SB_WRITE)) {
sbi              1618 fs/f2fs/super.c 		err = f2fs_commit_super(sbi, false);
sbi              1619 fs/f2fs/super.c 		f2fs_info(sbi, "Try to recover all the superblocks, ret: %d",
sbi              1622 fs/f2fs/super.c 			clear_sbi_flag(sbi, SBI_NEED_SB_WRITE);
sbi              1625 fs/f2fs/super.c 	default_options(sbi);
sbi              1632 fs/f2fs/super.c 			disable_checkpoint != test_opt(sbi, DISABLE_CHECKPOINT);
sbi              1651 fs/f2fs/super.c 		} else if (f2fs_sb_has_quota_ino(sbi)) {
sbi              1659 fs/f2fs/super.c 	if (no_extent_cache == !!test_opt(sbi, EXTENT_CACHE)) {
sbi              1661 fs/f2fs/super.c 		f2fs_warn(sbi, "switch extent_cache option is not allowed");
sbi              1665 fs/f2fs/super.c 	if (no_io_align == !!F2FS_IO_ALIGNED(sbi)) {
sbi              1667 fs/f2fs/super.c 		f2fs_warn(sbi, "switch io_bits option is not allowed");
sbi              1671 fs/f2fs/super.c 	if ((*flags & SB_RDONLY) && test_opt(sbi, DISABLE_CHECKPOINT)) {
sbi              1673 fs/f2fs/super.c 		f2fs_warn(sbi, "disabling checkpoint not compatible with read-only");
sbi              1682 fs/f2fs/super.c 	if ((*flags & SB_RDONLY) || !test_opt(sbi, BG_GC)) {
sbi              1683 fs/f2fs/super.c 		if (sbi->gc_thread) {
sbi              1684 fs/f2fs/super.c 			f2fs_stop_gc_thread(sbi);
sbi              1687 fs/f2fs/super.c 	} else if (!sbi->gc_thread) {
sbi              1688 fs/f2fs/super.c 		err = f2fs_start_gc_thread(sbi);
sbi              1695 fs/f2fs/super.c 		F2FS_OPTION(sbi).whint_mode != org_mount_opt.whint_mode) {
sbi              1699 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_IS_DIRTY);
sbi              1700 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_IS_CLOSE);
sbi              1702 fs/f2fs/super.c 		clear_sbi_flag(sbi, SBI_IS_CLOSE);
sbi              1706 fs/f2fs/super.c 		if (test_opt(sbi, DISABLE_CHECKPOINT)) {
sbi              1707 fs/f2fs/super.c 			err = f2fs_disable_checkpoint(sbi);
sbi              1711 fs/f2fs/super.c 			f2fs_enable_checkpoint(sbi);
sbi              1719 fs/f2fs/super.c 	if ((*flags & SB_RDONLY) || !test_opt(sbi, FLUSH_MERGE)) {
sbi              1720 fs/f2fs/super.c 		clear_opt(sbi, FLUSH_MERGE);
sbi              1721 fs/f2fs/super.c 		f2fs_destroy_flush_cmd_control(sbi, false);
sbi              1723 fs/f2fs/super.c 		err = f2fs_create_flush_cmd_control(sbi);
sbi              1735 fs/f2fs/super.c 		(test_opt(sbi, POSIX_ACL) ? SB_POSIXACL : 0);
sbi              1737 fs/f2fs/super.c 	limit_reserve_root(sbi);
sbi              1742 fs/f2fs/super.c 		if (f2fs_start_gc_thread(sbi))
sbi              1743 fs/f2fs/super.c 			f2fs_warn(sbi, "background gc thread has stopped");
sbi              1745 fs/f2fs/super.c 		f2fs_stop_gc_thread(sbi);
sbi              1749 fs/f2fs/super.c 	F2FS_OPTION(sbi).s_jquota_fmt = org_mount_opt.s_jquota_fmt;
sbi              1751 fs/f2fs/super.c 		kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
sbi              1752 fs/f2fs/super.c 		F2FS_OPTION(sbi).s_qf_names[i] = org_mount_opt.s_qf_names[i];
sbi              1755 fs/f2fs/super.c 	sbi->mount_opt = org_mount_opt;
sbi              1880 fs/f2fs/super.c static int f2fs_quota_on_mount(struct f2fs_sb_info *sbi, int type)
sbi              1882 fs/f2fs/super.c 	if (is_set_ckpt_flags(sbi, CP_QUOTA_NEED_FSCK_FLAG)) {
sbi              1883 fs/f2fs/super.c 		f2fs_err(sbi, "quota sysfile may be corrupted, skip loading it");
sbi              1887 fs/f2fs/super.c 	return dquot_quota_on_mount(sbi->sb, F2FS_OPTION(sbi).s_qf_names[type],
sbi              1888 fs/f2fs/super.c 					F2FS_OPTION(sbi).s_jquota_fmt, type);
sbi              1891 fs/f2fs/super.c int f2fs_enable_quota_files(struct f2fs_sb_info *sbi, bool rdonly)
sbi              1896 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi) && rdonly) {
sbi              1897 fs/f2fs/super.c 		err = f2fs_enable_quotas(sbi->sb);
sbi              1899 fs/f2fs/super.c 			f2fs_err(sbi, "Cannot turn on quota_ino: %d", err);
sbi              1906 fs/f2fs/super.c 		if (F2FS_OPTION(sbi).s_qf_names[i]) {
sbi              1907 fs/f2fs/super.c 			err = f2fs_quota_on_mount(sbi, i);
sbi              1912 fs/f2fs/super.c 			f2fs_err(sbi, "Cannot turn on quotas: %d on %d",
sbi              1947 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1951 fs/f2fs/super.c 		test_opt(sbi, USRQUOTA),
sbi              1952 fs/f2fs/super.c 		test_opt(sbi, GRPQUOTA),
sbi              1953 fs/f2fs/super.c 		test_opt(sbi, PRJQUOTA),
sbi              1957 fs/f2fs/super.c 		f2fs_err(sbi, "quota file may be corrupted, skip loading it");
sbi              1970 fs/f2fs/super.c 				f2fs_err(sbi, "Failed to enable quota tracking (type=%d, err=%d). Please run fsck to fix.",
sbi              1985 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              1999 fs/f2fs/super.c 	f2fs_lock_op(sbi);
sbi              2001 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2025 fs/f2fs/super.c 		if (is_journalled_quota(sbi))
sbi              2039 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2040 fs/f2fs/super.c 	f2fs_unlock_op(sbi);
sbi              2103 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              2113 fs/f2fs/super.c 	if (is_journalled_quota(sbi))
sbi              2114 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2155 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(dquot->dq_sb);
sbi              2158 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2161 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2162 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2168 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(dquot->dq_sb);
sbi              2171 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2174 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2175 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2181 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(dquot->dq_sb);
sbi              2184 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2187 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2188 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2195 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              2198 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2202 fs/f2fs/super.c 	if (is_journalled_quota(sbi))
sbi              2203 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_FLUSH);
sbi              2205 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2211 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              2214 fs/f2fs/super.c 	down_read(&sbi->quota_sem);
sbi              2217 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              2218 fs/f2fs/super.c 	up_read(&sbi->quota_sem);
sbi              2294 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi              2302 fs/f2fs/super.c 	if (f2fs_sb_has_lost_found(sbi) &&
sbi              2303 fs/f2fs/super.c 			inode->i_ino == F2FS_ROOT_INO(sbi))
sbi              2329 fs/f2fs/super.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              2332 fs/f2fs/super.c 	if (f2fs_check_nid_range(sbi, ino))
sbi              2410 fs/f2fs/super.c static inline bool sanity_check_area_boundary(struct f2fs_sb_info *sbi,
sbi              2415 fs/f2fs/super.c 	struct super_block *sb = sbi->sb;
sbi              2435 fs/f2fs/super.c 		f2fs_info(sbi, "Mismatch start address, segment0(%u) cp_blkaddr(%u)",
sbi              2442 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong CP boundary, start(%u) end(%u) blocks(%u)",
sbi              2450 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong SIT boundary, start(%u) end(%u) blocks(%u)",
sbi              2458 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong NAT boundary, start(%u) end(%u) blocks(%u)",
sbi              2466 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong SSA boundary, start(%u) end(%u) blocks(%u)",
sbi              2473 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong MAIN_AREA boundary, start(%u) end(%u) block(%u)",
sbi              2488 fs/f2fs/super.c 			set_sbi_flag(sbi, SBI_NEED_SB_WRITE);
sbi              2494 fs/f2fs/super.c 		f2fs_info(sbi, "Fix alignment : %s, start(%u) end(%u) block(%u)",
sbi              2505 fs/f2fs/super.c static int sanity_check_raw_super(struct f2fs_sb_info *sbi,
sbi              2517 fs/f2fs/super.c 		f2fs_info(sbi, "Magic Mismatch, valid(0x%x) - read(0x%x)",
sbi              2527 fs/f2fs/super.c 			f2fs_info(sbi, "Invalid SB checksum offset: %zu",
sbi              2532 fs/f2fs/super.c 		if (!f2fs_crc_valid(sbi, crc, raw_super, crc_offset)) {
sbi              2533 fs/f2fs/super.c 			f2fs_info(sbi, "Invalid SB checksum value: %u", crc);
sbi              2540 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid page_cache_size (%lu), supports only 4KB",
sbi              2548 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid blocksize (%u), supports only 4KB",
sbi              2555 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid log blocks per segment (%u)",
sbi              2565 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid log sectorsize (%u)",
sbi              2572 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid log sectors per block(%u) log sectorsize(%u)",
sbi              2588 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid segment count (%u)", segment_count);
sbi              2595 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid segment/section count (%u, %u x %u)",
sbi              2601 fs/f2fs/super.c 		f2fs_info(sbi, "Small segment_count (%u < %u * %u)",
sbi              2607 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong segment_count / block_count (%u > %llu)",
sbi              2613 fs/f2fs/super.c 		f2fs_info(sbi, "Wrong secs_per_zone / total_sections (%u, %u)",
sbi              2621 fs/f2fs/super.c 		f2fs_info(sbi, "Corrupted extension count (%u + %u > %u)",
sbi              2630 fs/f2fs/super.c 		f2fs_info(sbi, "Insane cp_payload (%u > %u)",
sbi              2640 fs/f2fs/super.c 		f2fs_info(sbi, "Invalid Fs Meta Ino: node(%u) meta(%u) root(%u)",
sbi              2648 fs/f2fs/super.c 	if (sanity_check_area_boundary(sbi, bh))
sbi              2654 fs/f2fs/super.c int f2fs_sanity_check_ckpt(struct f2fs_sb_info *sbi)
sbi              2657 fs/f2fs/super.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi              2658 fs/f2fs/super.c 	struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
sbi              2687 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong layout: check mkfs.f2fs version");
sbi              2696 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong user_block_count: %u",
sbi              2703 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong valid_user_blocks: %u, user_block_count: %u",
sbi              2709 fs/f2fs/super.c 	avail_node_count = sbi->total_node_count - F2FS_RESERVED_NODE_NUM;
sbi              2711 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong valid_node_count: %u, avail_node_count: %u",
sbi              2717 fs/f2fs/super.c 	blocks_per_seg = sbi->blocks_per_seg;
sbi              2726 fs/f2fs/super.c 				f2fs_err(sbi, "Node segment (%u, %u) has the same segno: %u",
sbi              2740 fs/f2fs/super.c 				f2fs_err(sbi, "Data segment (%u, %u) has the same segno: %u",
sbi              2751 fs/f2fs/super.c 				f2fs_err(sbi, "Node segment (%u) and Data segment (%u) has the same segno: %u",
sbi              2764 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong bitmap size: sit: %u, nat:%u",
sbi              2769 fs/f2fs/super.c 	cp_pack_start_sum = __start_sum_addr(sbi);
sbi              2770 fs/f2fs/super.c 	cp_payload = __cp_payload(sbi);
sbi              2774 fs/f2fs/super.c 		f2fs_err(sbi, "Wrong cp_pack_start_sum: %u",
sbi              2781 fs/f2fs/super.c 		f2fs_warn(sbi, "using deprecated layout of large_nat_bitmap, "
sbi              2788 fs/f2fs/super.c 	if (unlikely(f2fs_cp_error(sbi))) {
sbi              2789 fs/f2fs/super.c 		f2fs_err(sbi, "A bug case: need to run fsck");
sbi              2795 fs/f2fs/super.c static void init_sb_info(struct f2fs_sb_info *sbi)
sbi              2797 fs/f2fs/super.c 	struct f2fs_super_block *raw_super = sbi->raw_super;
sbi              2800 fs/f2fs/super.c 	sbi->log_sectors_per_block =
sbi              2802 fs/f2fs/super.c 	sbi->log_blocksize = le32_to_cpu(raw_super->log_blocksize);
sbi              2803 fs/f2fs/super.c 	sbi->blocksize = 1 << sbi->log_blocksize;
sbi              2804 fs/f2fs/super.c 	sbi->log_blocks_per_seg = le32_to_cpu(raw_super->log_blocks_per_seg);
sbi              2805 fs/f2fs/super.c 	sbi->blocks_per_seg = 1 << sbi->log_blocks_per_seg;
sbi              2806 fs/f2fs/super.c 	sbi->segs_per_sec = le32_to_cpu(raw_super->segs_per_sec);
sbi              2807 fs/f2fs/super.c 	sbi->secs_per_zone = le32_to_cpu(raw_super->secs_per_zone);
sbi              2808 fs/f2fs/super.c 	sbi->total_sections = le32_to_cpu(raw_super->section_count);
sbi              2809 fs/f2fs/super.c 	sbi->total_node_count =
sbi              2811 fs/f2fs/super.c 			* sbi->blocks_per_seg * NAT_ENTRY_PER_BLOCK;
sbi              2812 fs/f2fs/super.c 	sbi->root_ino_num = le32_to_cpu(raw_super->root_ino);
sbi              2813 fs/f2fs/super.c 	sbi->node_ino_num = le32_to_cpu(raw_super->node_ino);
sbi              2814 fs/f2fs/super.c 	sbi->meta_ino_num = le32_to_cpu(raw_super->meta_ino);
sbi              2815 fs/f2fs/super.c 	sbi->cur_victim_sec = NULL_SECNO;
sbi              2816 fs/f2fs/super.c 	sbi->next_victim_seg[BG_GC] = NULL_SEGNO;
sbi              2817 fs/f2fs/super.c 	sbi->next_victim_seg[FG_GC] = NULL_SEGNO;
sbi              2818 fs/f2fs/super.c 	sbi->max_victim_search = DEF_MAX_VICTIM_SEARCH;
sbi              2819 fs/f2fs/super.c 	sbi->migration_granularity = sbi->segs_per_sec;
sbi              2821 fs/f2fs/super.c 	sbi->dir_level = DEF_DIR_LEVEL;
sbi              2822 fs/f2fs/super.c 	sbi->interval_time[CP_TIME] = DEF_CP_INTERVAL;
sbi              2823 fs/f2fs/super.c 	sbi->interval_time[REQ_TIME] = DEF_IDLE_INTERVAL;
sbi              2824 fs/f2fs/super.c 	sbi->interval_time[DISCARD_TIME] = DEF_IDLE_INTERVAL;
sbi              2825 fs/f2fs/super.c 	sbi->interval_time[GC_TIME] = DEF_IDLE_INTERVAL;
sbi              2826 fs/f2fs/super.c 	sbi->interval_time[DISABLE_TIME] = DEF_DISABLE_INTERVAL;
sbi              2827 fs/f2fs/super.c 	sbi->interval_time[UMOUNT_DISCARD_TIMEOUT] =
sbi              2829 fs/f2fs/super.c 	clear_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              2832 fs/f2fs/super.c 		atomic_set(&sbi->nr_pages[i], 0);
sbi              2835 fs/f2fs/super.c 		atomic_set(&sbi->wb_sync_req[i], 0);
sbi              2837 fs/f2fs/super.c 	INIT_LIST_HEAD(&sbi->s_list);
sbi              2838 fs/f2fs/super.c 	mutex_init(&sbi->umount_mutex);
sbi              2839 fs/f2fs/super.c 	init_rwsem(&sbi->io_order_lock);
sbi              2840 fs/f2fs/super.c 	spin_lock_init(&sbi->cp_lock);
sbi              2842 fs/f2fs/super.c 	sbi->dirty_device = 0;
sbi              2843 fs/f2fs/super.c 	spin_lock_init(&sbi->dev_lock);
sbi              2845 fs/f2fs/super.c 	init_rwsem(&sbi->sb_lock);
sbi              2848 fs/f2fs/super.c static int init_percpu_info(struct f2fs_sb_info *sbi)
sbi              2852 fs/f2fs/super.c 	err = percpu_counter_init(&sbi->alloc_valid_block_count, 0, GFP_KERNEL);
sbi              2856 fs/f2fs/super.c 	err = percpu_counter_init(&sbi->total_valid_inode_count, 0,
sbi              2859 fs/f2fs/super.c 		percpu_counter_destroy(&sbi->alloc_valid_block_count);
sbi              2865 fs/f2fs/super.c static int init_blkz_info(struct f2fs_sb_info *sbi, int devi)
sbi              2875 fs/f2fs/super.c 	if (!f2fs_sb_has_blkzoned(sbi))
sbi              2878 fs/f2fs/super.c 	if (sbi->blocks_per_blkz && sbi->blocks_per_blkz !=
sbi              2881 fs/f2fs/super.c 	sbi->blocks_per_blkz = SECTOR_TO_BLOCK(bdev_zone_sectors(bdev));
sbi              2882 fs/f2fs/super.c 	if (sbi->log_blocks_per_blkz && sbi->log_blocks_per_blkz !=
sbi              2883 fs/f2fs/super.c 				__ilog2_u32(sbi->blocks_per_blkz))
sbi              2885 fs/f2fs/super.c 	sbi->log_blocks_per_blkz = __ilog2_u32(sbi->blocks_per_blkz);
sbi              2887 fs/f2fs/super.c 					sbi->log_blocks_per_blkz;
sbi              2891 fs/f2fs/super.c 	FDEV(devi).blkz_seq = f2fs_kzalloc(sbi,
sbi              2900 fs/f2fs/super.c 	zones = f2fs_kzalloc(sbi,
sbi              2939 fs/f2fs/super.c static int read_raw_super_block(struct f2fs_sb_info *sbi,
sbi              2943 fs/f2fs/super.c 	struct super_block *sb = sbi->sb;
sbi              2956 fs/f2fs/super.c 			f2fs_err(sbi, "Unable to read %dth superblock",
sbi              2963 fs/f2fs/super.c 		err = sanity_check_raw_super(sbi, bh);
sbi              2965 fs/f2fs/super.c 			f2fs_err(sbi, "Can't find valid F2FS filesystem in %dth superblock",
sbi              2993 fs/f2fs/super.c int f2fs_commit_super(struct f2fs_sb_info *sbi, bool recover)
sbi              2999 fs/f2fs/super.c 	if ((recover && f2fs_readonly(sbi->sb)) ||
sbi              3000 fs/f2fs/super.c 				bdev_read_only(sbi->sb->s_bdev)) {
sbi              3001 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_NEED_SB_WRITE);
sbi              3006 fs/f2fs/super.c 	if (!recover && f2fs_sb_has_sb_chksum(sbi)) {
sbi              3007 fs/f2fs/super.c 		crc = f2fs_crc32(sbi, F2FS_RAW_SUPER(sbi),
sbi              3009 fs/f2fs/super.c 		F2FS_RAW_SUPER(sbi)->crc = cpu_to_le32(crc);
sbi              3013 fs/f2fs/super.c 	bh = sb_bread(sbi->sb, sbi->valid_super_block ? 0 : 1);
sbi              3016 fs/f2fs/super.c 	err = __f2fs_commit_super(bh, F2FS_RAW_SUPER(sbi));
sbi              3024 fs/f2fs/super.c 	bh = sb_bread(sbi->sb, sbi->valid_super_block);
sbi              3027 fs/f2fs/super.c 	err = __f2fs_commit_super(bh, F2FS_RAW_SUPER(sbi));
sbi              3032 fs/f2fs/super.c static int f2fs_scan_devices(struct f2fs_sb_info *sbi)
sbi              3034 fs/f2fs/super.c 	struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
sbi              3040 fs/f2fs/super.c 		if (!bdev_is_zoned(sbi->sb->s_bdev))
sbi              3049 fs/f2fs/super.c 	sbi->devs = f2fs_kzalloc(sbi,
sbi              3053 fs/f2fs/super.c 	if (!sbi->devs)
sbi              3064 fs/f2fs/super.c 				blkdev_get_by_dev(sbi->sb->s_bdev->bd_dev,
sbi              3065 fs/f2fs/super.c 					sbi->sb->s_mode, sbi->sb->s_type);
sbi              3075 fs/f2fs/super.c 				    sbi->log_blocks_per_seg) - 1 +
sbi              3081 fs/f2fs/super.c 					sbi->log_blocks_per_seg) - 1;
sbi              3084 fs/f2fs/super.c 					sbi->sb->s_mode, sbi->sb->s_type);
sbi              3090 fs/f2fs/super.c 		sbi->s_ndevs = i + 1;
sbi              3094 fs/f2fs/super.c 				!f2fs_sb_has_blkzoned(sbi)) {
sbi              3095 fs/f2fs/super.c 			f2fs_err(sbi, "Zoned block device feature not enabled\n");
sbi              3099 fs/f2fs/super.c 			if (init_blkz_info(sbi, i)) {
sbi              3100 fs/f2fs/super.c 				f2fs_err(sbi, "Failed to initialize F2FS blkzone information");
sbi              3105 fs/f2fs/super.c 			f2fs_info(sbi, "Mount Device [%2d]: %20s, %8u, %8x - %8x (zone: %s)",
sbi              3114 fs/f2fs/super.c 		f2fs_info(sbi, "Mount Device [%2d]: %20s, %8u, %8x - %8x",
sbi              3119 fs/f2fs/super.c 	f2fs_info(sbi,
sbi              3120 fs/f2fs/super.c 		  "IO Block Size: %8d KB", F2FS_IO_SIZE_KB(sbi));
sbi              3124 fs/f2fs/super.c static int f2fs_setup_casefold(struct f2fs_sb_info *sbi)
sbi              3127 fs/f2fs/super.c 	if (f2fs_sb_has_casefold(sbi) && !sbi->s_encoding) {
sbi              3132 fs/f2fs/super.c 		if (f2fs_sb_has_encrypt(sbi)) {
sbi              3133 fs/f2fs/super.c 			f2fs_err(sbi,
sbi              3138 fs/f2fs/super.c 		if (f2fs_sb_read_encoding(sbi->raw_super, &encoding_info,
sbi              3140 fs/f2fs/super.c 			f2fs_err(sbi,
sbi              3147 fs/f2fs/super.c 			f2fs_err(sbi,
sbi              3154 fs/f2fs/super.c 		f2fs_info(sbi, "Using encoding defined by superblock: "
sbi              3158 fs/f2fs/super.c 		sbi->s_encoding = encoding;
sbi              3159 fs/f2fs/super.c 		sbi->s_encoding_flags = encoding_flags;
sbi              3160 fs/f2fs/super.c 		sbi->sb->s_d_op = &f2fs_dentry_ops;
sbi              3163 fs/f2fs/super.c 	if (f2fs_sb_has_casefold(sbi)) {
sbi              3164 fs/f2fs/super.c 		f2fs_err(sbi, "Filesystem with casefold feature cannot be mounted without CONFIG_UNICODE");
sbi              3171 fs/f2fs/super.c static void f2fs_tuning_parameters(struct f2fs_sb_info *sbi)
sbi              3173 fs/f2fs/super.c 	struct f2fs_sm_info *sm_i = SM_I(sbi);
sbi              3177 fs/f2fs/super.c 		F2FS_OPTION(sbi).alloc_mode = ALLOC_MODE_REUSE;
sbi              3182 fs/f2fs/super.c 	sbi->readdir_ra = 1;
sbi              3187 fs/f2fs/super.c 	struct f2fs_sb_info *sbi;
sbi              3204 fs/f2fs/super.c 	sbi = kzalloc(sizeof(struct f2fs_sb_info), GFP_KERNEL);
sbi              3205 fs/f2fs/super.c 	if (!sbi)
sbi              3208 fs/f2fs/super.c 	sbi->sb = sb;
sbi              3211 fs/f2fs/super.c 	sbi->s_chksum_driver = crypto_alloc_shash("crc32", 0, 0);
sbi              3212 fs/f2fs/super.c 	if (IS_ERR(sbi->s_chksum_driver)) {
sbi              3213 fs/f2fs/super.c 		f2fs_err(sbi, "Cannot load crc32 driver.");
sbi              3214 fs/f2fs/super.c 		err = PTR_ERR(sbi->s_chksum_driver);
sbi              3215 fs/f2fs/super.c 		sbi->s_chksum_driver = NULL;
sbi              3221 fs/f2fs/super.c 		f2fs_err(sbi, "unable to set blocksize");
sbi              3225 fs/f2fs/super.c 	err = read_raw_super_block(sbi, &raw_super, &valid_super_block,
sbi              3230 fs/f2fs/super.c 	sb->s_fs_info = sbi;
sbi              3231 fs/f2fs/super.c 	sbi->raw_super = raw_super;
sbi              3234 fs/f2fs/super.c 	if (f2fs_sb_has_inode_chksum(sbi))
sbi              3235 fs/f2fs/super.c 		sbi->s_chksum_seed = f2fs_chksum(sbi, ~0, raw_super->uuid,
sbi              3244 fs/f2fs/super.c 	if (f2fs_sb_has_blkzoned(sbi)) {
sbi              3245 fs/f2fs/super.c 		f2fs_err(sbi, "Zoned block device support is not enabled");
sbi              3250 fs/f2fs/super.c 	default_options(sbi);
sbi              3262 fs/f2fs/super.c 	sbi->max_file_blocks = max_file_blocks();
sbi              3263 fs/f2fs/super.c 	sb->s_maxbytes = sbi->max_file_blocks <<
sbi              3267 fs/f2fs/super.c 	err = f2fs_setup_casefold(sbi);
sbi              3276 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi)) {
sbi              3278 fs/f2fs/super.c 			if (f2fs_qf_ino(sbi->sb, i))
sbi              3279 fs/f2fs/super.c 				sbi->nquota_files++;
sbi              3296 fs/f2fs/super.c 		(test_opt(sbi, POSIX_ACL) ? SB_POSIXACL : 0);
sbi              3301 fs/f2fs/super.c 	sbi->valid_super_block = valid_super_block;
sbi              3302 fs/f2fs/super.c 	mutex_init(&sbi->gc_mutex);
sbi              3303 fs/f2fs/super.c 	mutex_init(&sbi->writepages);
sbi              3304 fs/f2fs/super.c 	mutex_init(&sbi->cp_mutex);
sbi              3305 fs/f2fs/super.c 	mutex_init(&sbi->resize_mutex);
sbi              3306 fs/f2fs/super.c 	init_rwsem(&sbi->node_write);
sbi              3307 fs/f2fs/super.c 	init_rwsem(&sbi->node_change);
sbi              3310 fs/f2fs/super.c 	set_sbi_flag(sbi, SBI_POR_DOING);
sbi              3311 fs/f2fs/super.c 	spin_lock_init(&sbi->stat_lock);
sbi              3314 fs/f2fs/super.c 	spin_lock_init(&sbi->iostat_lock);
sbi              3315 fs/f2fs/super.c 	sbi->iostat_enable = false;
sbi              3321 fs/f2fs/super.c 		sbi->write_io[i] =
sbi              3322 fs/f2fs/super.c 			f2fs_kmalloc(sbi,
sbi              3326 fs/f2fs/super.c 		if (!sbi->write_io[i]) {
sbi              3332 fs/f2fs/super.c 			init_rwsem(&sbi->write_io[i][j].io_rwsem);
sbi              3333 fs/f2fs/super.c 			sbi->write_io[i][j].sbi = sbi;
sbi              3334 fs/f2fs/super.c 			sbi->write_io[i][j].bio = NULL;
sbi              3335 fs/f2fs/super.c 			spin_lock_init(&sbi->write_io[i][j].io_lock);
sbi              3336 fs/f2fs/super.c 			INIT_LIST_HEAD(&sbi->write_io[i][j].io_list);
sbi              3340 fs/f2fs/super.c 	init_rwsem(&sbi->cp_rwsem);
sbi              3341 fs/f2fs/super.c 	init_rwsem(&sbi->quota_sem);
sbi              3342 fs/f2fs/super.c 	init_waitqueue_head(&sbi->cp_wait);
sbi              3343 fs/f2fs/super.c 	init_sb_info(sbi);
sbi              3345 fs/f2fs/super.c 	err = init_percpu_info(sbi);
sbi              3349 fs/f2fs/super.c 	if (F2FS_IO_ALIGNED(sbi)) {
sbi              3350 fs/f2fs/super.c 		sbi->write_io_dummy =
sbi              3351 fs/f2fs/super.c 			mempool_create_page_pool(2 * (F2FS_IO_SIZE(sbi) - 1), 0);
sbi              3352 fs/f2fs/super.c 		if (!sbi->write_io_dummy) {
sbi              3359 fs/f2fs/super.c 	sbi->meta_inode = f2fs_iget(sb, F2FS_META_INO(sbi));
sbi              3360 fs/f2fs/super.c 	if (IS_ERR(sbi->meta_inode)) {
sbi              3361 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to read F2FS meta data inode");
sbi              3362 fs/f2fs/super.c 		err = PTR_ERR(sbi->meta_inode);
sbi              3366 fs/f2fs/super.c 	err = f2fs_get_valid_checkpoint(sbi);
sbi              3368 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to get valid F2FS checkpoint");
sbi              3372 fs/f2fs/super.c 	if (__is_set_ckpt_flags(F2FS_CKPT(sbi), CP_QUOTA_NEED_FSCK_FLAG))
sbi              3373 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
sbi              3374 fs/f2fs/super.c 	if (__is_set_ckpt_flags(F2FS_CKPT(sbi), CP_DISABLED_QUICK_FLAG)) {
sbi              3375 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_CP_DISABLED_QUICK);
sbi              3376 fs/f2fs/super.c 		sbi->interval_time[DISABLE_TIME] = DEF_DISABLE_QUICK_INTERVAL;
sbi              3379 fs/f2fs/super.c 	if (__is_set_ckpt_flags(F2FS_CKPT(sbi), CP_FSCK_FLAG))
sbi              3380 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              3383 fs/f2fs/super.c 	err = f2fs_scan_devices(sbi);
sbi              3385 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to find devices");
sbi              3389 fs/f2fs/super.c 	sbi->total_valid_node_count =
sbi              3390 fs/f2fs/super.c 				le32_to_cpu(sbi->ckpt->valid_node_count);
sbi              3391 fs/f2fs/super.c 	percpu_counter_set(&sbi->total_valid_inode_count,
sbi              3392 fs/f2fs/super.c 				le32_to_cpu(sbi->ckpt->valid_inode_count));
sbi              3393 fs/f2fs/super.c 	sbi->user_block_count = le64_to_cpu(sbi->ckpt->user_block_count);
sbi              3394 fs/f2fs/super.c 	sbi->total_valid_block_count =
sbi              3395 fs/f2fs/super.c 				le64_to_cpu(sbi->ckpt->valid_block_count);
sbi              3396 fs/f2fs/super.c 	sbi->last_valid_block_count = sbi->total_valid_block_count;
sbi              3397 fs/f2fs/super.c 	sbi->reserved_blocks = 0;
sbi              3398 fs/f2fs/super.c 	sbi->current_reserved_blocks = 0;
sbi              3399 fs/f2fs/super.c 	limit_reserve_root(sbi);
sbi              3402 fs/f2fs/super.c 		INIT_LIST_HEAD(&sbi->inode_list[i]);
sbi              3403 fs/f2fs/super.c 		spin_lock_init(&sbi->inode_lock[i]);
sbi              3405 fs/f2fs/super.c 	mutex_init(&sbi->flush_lock);
sbi              3407 fs/f2fs/super.c 	f2fs_init_extent_cache_info(sbi);
sbi              3409 fs/f2fs/super.c 	f2fs_init_ino_entry_info(sbi);
sbi              3411 fs/f2fs/super.c 	f2fs_init_fsync_node_info(sbi);
sbi              3414 fs/f2fs/super.c 	err = f2fs_build_segment_manager(sbi);
sbi              3416 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to initialize F2FS segment manager (%d)",
sbi              3420 fs/f2fs/super.c 	err = f2fs_build_node_manager(sbi);
sbi              3422 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to initialize F2FS node manager (%d)",
sbi              3429 fs/f2fs/super.c 		sbi->sectors_written_start =
sbi              3434 fs/f2fs/super.c 	seg_i = CURSEG_I(sbi, CURSEG_HOT_NODE);
sbi              3435 fs/f2fs/super.c 	if (__exist_node_summaries(sbi))
sbi              3436 fs/f2fs/super.c 		sbi->kbytes_written =
sbi              3439 fs/f2fs/super.c 	f2fs_build_gc_manager(sbi);
sbi              3441 fs/f2fs/super.c 	err = f2fs_build_stats(sbi);
sbi              3446 fs/f2fs/super.c 	sbi->node_inode = f2fs_iget(sb, F2FS_NODE_INO(sbi));
sbi              3447 fs/f2fs/super.c 	if (IS_ERR(sbi->node_inode)) {
sbi              3448 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to read node inode");
sbi              3449 fs/f2fs/super.c 		err = PTR_ERR(sbi->node_inode);
sbi              3454 fs/f2fs/super.c 	root = f2fs_iget(sb, F2FS_ROOT_INO(sbi));
sbi              3456 fs/f2fs/super.c 		f2fs_err(sbi, "Failed to read root inode");
sbi              3473 fs/f2fs/super.c 	err = f2fs_register_sysfs(sbi);
sbi              3479 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi) && !f2fs_readonly(sb)) {
sbi              3482 fs/f2fs/super.c 			f2fs_err(sbi, "Cannot turn on quotas: error %d", err);
sbi              3486 fs/f2fs/super.c 	err = f2fs_recover_orphan_inodes(sbi);
sbi              3490 fs/f2fs/super.c 	if (unlikely(is_set_ckpt_flags(sbi, CP_DISABLED_FLAG)))
sbi              3494 fs/f2fs/super.c 	if (!test_opt(sbi, DISABLE_ROLL_FORWARD) &&
sbi              3495 fs/f2fs/super.c 			!test_opt(sbi, NORECOVERY)) {
sbi              3500 fs/f2fs/super.c 		if (f2fs_hw_is_readonly(sbi)) {
sbi              3501 fs/f2fs/super.c 			if (!is_set_ckpt_flags(sbi, CP_UMOUNT_FLAG)) {
sbi              3503 fs/f2fs/super.c 				f2fs_err(sbi, "Need to recover fsync data, but write access unavailable");
sbi              3506 fs/f2fs/super.c 			f2fs_info(sbi, "write access unavailable, skipping recovery");
sbi              3511 fs/f2fs/super.c 			set_sbi_flag(sbi, SBI_NEED_FSCK);
sbi              3516 fs/f2fs/super.c 		err = f2fs_recover_fsync_data(sbi, false);
sbi              3521 fs/f2fs/super.c 			f2fs_err(sbi, "Cannot recover all fsync data errno=%d",
sbi              3526 fs/f2fs/super.c 		err = f2fs_recover_fsync_data(sbi, true);
sbi              3530 fs/f2fs/super.c 			f2fs_err(sbi, "Need to recover fsync data");
sbi              3536 fs/f2fs/super.c 	clear_sbi_flag(sbi, SBI_POR_DOING);
sbi              3538 fs/f2fs/super.c 	if (test_opt(sbi, DISABLE_CHECKPOINT)) {
sbi              3539 fs/f2fs/super.c 		err = f2fs_disable_checkpoint(sbi);
sbi              3542 fs/f2fs/super.c 	} else if (is_set_ckpt_flags(sbi, CP_DISABLED_FLAG)) {
sbi              3543 fs/f2fs/super.c 		f2fs_enable_checkpoint(sbi);
sbi              3550 fs/f2fs/super.c 	if (test_opt(sbi, BG_GC) && !f2fs_readonly(sb)) {
sbi              3552 fs/f2fs/super.c 		err = f2fs_start_gc_thread(sbi);
sbi              3560 fs/f2fs/super.c 		err = f2fs_commit_super(sbi, true);
sbi              3561 fs/f2fs/super.c 		f2fs_info(sbi, "Try to recover %dth superblock, ret: %d",
sbi              3562 fs/f2fs/super.c 			  sbi->valid_super_block ? 1 : 2, err);
sbi              3565 fs/f2fs/super.c 	f2fs_join_shrinker(sbi);
sbi              3567 fs/f2fs/super.c 	f2fs_tuning_parameters(sbi);
sbi              3569 fs/f2fs/super.c 	f2fs_notice(sbi, "Mounted with checkpoint version = %llx",
sbi              3570 fs/f2fs/super.c 		    cur_cp_version(F2FS_CKPT(sbi)));
sbi              3571 fs/f2fs/super.c 	f2fs_update_time(sbi, CP_TIME);
sbi              3572 fs/f2fs/super.c 	f2fs_update_time(sbi, REQ_TIME);
sbi              3573 fs/f2fs/super.c 	clear_sbi_flag(sbi, SBI_CP_DISABLED_QUICK);
sbi              3578 fs/f2fs/super.c 	sync_filesystem(sbi->sb);
sbi              3584 fs/f2fs/super.c 	if (f2fs_sb_has_quota_ino(sbi) && !f2fs_readonly(sb))
sbi              3585 fs/f2fs/super.c 		f2fs_quota_off_umount(sbi->sb);
sbi              3593 fs/f2fs/super.c 	truncate_inode_pages_final(META_MAPPING(sbi));
sbi              3596 fs/f2fs/super.c 	f2fs_unregister_sysfs(sbi);
sbi              3601 fs/f2fs/super.c 	f2fs_release_ino_entry(sbi, true);
sbi              3602 fs/f2fs/super.c 	truncate_inode_pages_final(NODE_MAPPING(sbi));
sbi              3603 fs/f2fs/super.c 	iput(sbi->node_inode);
sbi              3604 fs/f2fs/super.c 	sbi->node_inode = NULL;
sbi              3606 fs/f2fs/super.c 	f2fs_destroy_stats(sbi);
sbi              3608 fs/f2fs/super.c 	f2fs_destroy_node_manager(sbi);
sbi              3610 fs/f2fs/super.c 	f2fs_destroy_segment_manager(sbi);
sbi              3612 fs/f2fs/super.c 	destroy_device_list(sbi);
sbi              3613 fs/f2fs/super.c 	kvfree(sbi->ckpt);
sbi              3615 fs/f2fs/super.c 	make_bad_inode(sbi->meta_inode);
sbi              3616 fs/f2fs/super.c 	iput(sbi->meta_inode);
sbi              3617 fs/f2fs/super.c 	sbi->meta_inode = NULL;
sbi              3619 fs/f2fs/super.c 	mempool_destroy(sbi->write_io_dummy);
sbi              3621 fs/f2fs/super.c 	destroy_percpu_info(sbi);
sbi              3624 fs/f2fs/super.c 		kvfree(sbi->write_io[i]);
sbi              3627 fs/f2fs/super.c 	utf8_unload(sbi->s_encoding);
sbi              3632 fs/f2fs/super.c 		kvfree(F2FS_OPTION(sbi).s_qf_names[i]);
sbi              3638 fs/f2fs/super.c 	if (sbi->s_chksum_driver)
sbi              3639 fs/f2fs/super.c 		crypto_free_shash(sbi->s_chksum_driver);
sbi              3640 fs/f2fs/super.c 	kvfree(sbi);
sbi              3660 fs/f2fs/super.c 		struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi              3662 fs/f2fs/super.c 		set_sbi_flag(sbi, SBI_IS_CLOSE);
sbi              3663 fs/f2fs/super.c 		f2fs_stop_gc_thread(sbi);
sbi              3664 fs/f2fs/super.c 		f2fs_stop_discard_thread(sbi);
sbi              3666 fs/f2fs/super.c 		if (is_sbi_flag_set(sbi, SBI_IS_DIRTY) ||
sbi              3667 fs/f2fs/super.c 				!is_set_ckpt_flags(sbi, CP_UMOUNT_FLAG)) {
sbi              3671 fs/f2fs/super.c 			f2fs_write_checkpoint(sbi, &cpc);
sbi              3674 fs/f2fs/super.c 		if (is_sbi_flag_set(sbi, SBI_IS_RECOVERED) && f2fs_readonly(sb))
sbi                45 fs/f2fs/sysfs.c static unsigned char *__struct_ptr(struct f2fs_sb_info *sbi, int struct_type)
sbi                48 fs/f2fs/sysfs.c 		return (unsigned char *)sbi->gc_thread;
sbi                50 fs/f2fs/sysfs.c 		return (unsigned char *)SM_I(sbi);
sbi                52 fs/f2fs/sysfs.c 		return (unsigned char *)SM_I(sbi)->dcc_info;
sbi                54 fs/f2fs/sysfs.c 		return (unsigned char *)NM_I(sbi);
sbi                56 fs/f2fs/sysfs.c 		return (unsigned char *)sbi;
sbi                60 fs/f2fs/sysfs.c 		return (unsigned char *)&F2FS_OPTION(sbi).fault_info;
sbi                66 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi                69 fs/f2fs/sysfs.c 		(unsigned long long)(dirty_segments(sbi)));
sbi                73 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi                77 fs/f2fs/sysfs.c 	if (test_opt(sbi, DISABLE_CHECKPOINT))
sbi                78 fs/f2fs/sysfs.c 		unusable = sbi->unusable_block_count;
sbi                80 fs/f2fs/sysfs.c 		unusable = f2fs_get_unusable_blocks(sbi);
sbi                86 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi                89 fs/f2fs/sysfs.c 	if (f2fs_sb_has_casefold(sbi))
sbi                91 fs/f2fs/sysfs.c 			sbi->s_encoding->charset,
sbi                92 fs/f2fs/sysfs.c 			(sbi->s_encoding->version >> 16) & 0xff,
sbi                93 fs/f2fs/sysfs.c 			(sbi->s_encoding->version >> 8) & 0xff,
sbi                94 fs/f2fs/sysfs.c 			sbi->s_encoding->version & 0xff);
sbi               100 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi               102 fs/f2fs/sysfs.c 	struct super_block *sb = sbi->sb;
sbi               108 fs/f2fs/sysfs.c 		(unsigned long long)(sbi->kbytes_written +
sbi               109 fs/f2fs/sysfs.c 			BD_PART_WRITTEN(sbi)));
sbi               113 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi               115 fs/f2fs/sysfs.c 	struct super_block *sb = sbi->sb;
sbi               121 fs/f2fs/sysfs.c 	if (f2fs_sb_has_encrypt(sbi))
sbi               124 fs/f2fs/sysfs.c 	if (f2fs_sb_has_blkzoned(sbi))
sbi               127 fs/f2fs/sysfs.c 	if (f2fs_sb_has_extra_attr(sbi))
sbi               130 fs/f2fs/sysfs.c 	if (f2fs_sb_has_project_quota(sbi))
sbi               133 fs/f2fs/sysfs.c 	if (f2fs_sb_has_inode_chksum(sbi))
sbi               136 fs/f2fs/sysfs.c 	if (f2fs_sb_has_flexible_inline_xattr(sbi))
sbi               139 fs/f2fs/sysfs.c 	if (f2fs_sb_has_quota_ino(sbi))
sbi               142 fs/f2fs/sysfs.c 	if (f2fs_sb_has_inode_crtime(sbi))
sbi               145 fs/f2fs/sysfs.c 	if (f2fs_sb_has_lost_found(sbi))
sbi               148 fs/f2fs/sysfs.c 	if (f2fs_sb_has_verity(sbi))
sbi               151 fs/f2fs/sysfs.c 	if (f2fs_sb_has_sb_chksum(sbi))
sbi               154 fs/f2fs/sysfs.c 	if (f2fs_sb_has_casefold(sbi))
sbi               162 fs/f2fs/sysfs.c 					struct f2fs_sb_info *sbi, char *buf)
sbi               164 fs/f2fs/sysfs.c 	return snprintf(buf, PAGE_SIZE, "%u\n", sbi->current_reserved_blocks);
sbi               168 fs/f2fs/sysfs.c 			struct f2fs_sb_info *sbi, char *buf)
sbi               173 fs/f2fs/sysfs.c 	ptr = __struct_ptr(sbi, a->struct_type);
sbi               179 fs/f2fs/sysfs.c 					sbi->raw_super->extension_list;
sbi               180 fs/f2fs/sysfs.c 		int cold_count = le32_to_cpu(sbi->raw_super->extension_count);
sbi               181 fs/f2fs/sysfs.c 		int hot_count = sbi->raw_super->hot_ext_count;
sbi               204 fs/f2fs/sysfs.c 			struct f2fs_sb_info *sbi,
sbi               212 fs/f2fs/sysfs.c 	ptr = __struct_ptr(sbi, a->struct_type);
sbi               237 fs/f2fs/sysfs.c 		down_write(&sbi->sb_lock);
sbi               239 fs/f2fs/sysfs.c 		ret = f2fs_update_extension_list(sbi, name, hot, set);
sbi               243 fs/f2fs/sysfs.c 		ret = f2fs_commit_super(sbi, false);
sbi               245 fs/f2fs/sysfs.c 			f2fs_update_extension_list(sbi, name, hot, !set);
sbi               247 fs/f2fs/sysfs.c 		up_write(&sbi->sb_lock);
sbi               263 fs/f2fs/sysfs.c 		spin_lock(&sbi->stat_lock);
sbi               264 fs/f2fs/sysfs.c 		if (t > (unsigned long)(sbi->user_block_count -
sbi               265 fs/f2fs/sysfs.c 				F2FS_OPTION(sbi).root_reserved_blocks)) {
sbi               266 fs/f2fs/sysfs.c 			spin_unlock(&sbi->stat_lock);
sbi               270 fs/f2fs/sysfs.c 		sbi->current_reserved_blocks = min(sbi->reserved_blocks,
sbi               271 fs/f2fs/sysfs.c 				sbi->user_block_count - valid_user_blocks(sbi));
sbi               272 fs/f2fs/sysfs.c 		spin_unlock(&sbi->stat_lock);
sbi               286 fs/f2fs/sysfs.c 		if (t == 0 || t > sbi->segs_per_sec)
sbi               295 fs/f2fs/sysfs.c 			sbi->gc_mode = GC_URGENT;
sbi               296 fs/f2fs/sysfs.c 			if (sbi->gc_thread) {
sbi               297 fs/f2fs/sysfs.c 				sbi->gc_thread->gc_wake = 1;
sbi               299 fs/f2fs/sysfs.c 					&sbi->gc_thread->gc_wait_queue_head);
sbi               300 fs/f2fs/sysfs.c 				wake_up_discard_thread(sbi, true);
sbi               303 fs/f2fs/sysfs.c 			sbi->gc_mode = GC_NORMAL;
sbi               309 fs/f2fs/sysfs.c 			sbi->gc_mode = GC_IDLE_CB;
sbi               311 fs/f2fs/sysfs.c 			sbi->gc_mode = GC_IDLE_GREEDY;
sbi               313 fs/f2fs/sysfs.c 			sbi->gc_mode = GC_NORMAL;
sbi               319 fs/f2fs/sysfs.c 		sbi->iostat_enable = !!t;
sbi               320 fs/f2fs/sysfs.c 		if (!sbi->iostat_enable)
sbi               321 fs/f2fs/sysfs.c 			f2fs_reset_iostat(sbi);
sbi               331 fs/f2fs/sysfs.c 			struct f2fs_sb_info *sbi,
sbi               339 fs/f2fs/sysfs.c 		if (!down_read_trylock(&sbi->sb->s_umount))
sbi               342 fs/f2fs/sysfs.c 	ret = __sbi_store(a, sbi, buf, count);
sbi               344 fs/f2fs/sysfs.c 		up_read(&sbi->sb->s_umount);
sbi               352 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info,
sbi               356 fs/f2fs/sysfs.c 	return a->show ? a->show(a, sbi, buf) : 0;
sbi               362 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info,
sbi               366 fs/f2fs/sysfs.c 	return a->store ? a->store(a, sbi, buf, len) : 0;
sbi               371 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info,
sbi               373 fs/f2fs/sysfs.c 	complete(&sbi->s_kobj_unregister);
sbi               393 fs/f2fs/sysfs.c 		struct f2fs_sb_info *sbi, char *buf)
sbi               608 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               610 fs/f2fs/sysfs.c 			le32_to_cpu(sbi->raw_super->segment_count_main);
sbi               617 fs/f2fs/sysfs.c 		struct seg_entry *se = get_seg_entry(sbi, i);
sbi               635 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               637 fs/f2fs/sysfs.c 			le32_to_cpu(sbi->raw_super->segment_count_main);
sbi               644 fs/f2fs/sysfs.c 		struct seg_entry *se = get_seg_entry(sbi, i);
sbi               659 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               662 fs/f2fs/sysfs.c 	if (!sbi->iostat_enable)
sbi               669 fs/f2fs/sysfs.c 				sbi->write_iostat[APP_BUFFERED_IO]);
sbi               671 fs/f2fs/sysfs.c 				sbi->write_iostat[APP_DIRECT_IO]);
sbi               673 fs/f2fs/sysfs.c 				sbi->write_iostat[APP_MAPPED_IO]);
sbi               677 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_DATA_IO]);
sbi               679 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_NODE_IO]);
sbi               681 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_META_IO]);
sbi               683 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_GC_DATA_IO]);
sbi               685 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_GC_NODE_IO]);
sbi               687 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_CP_DATA_IO]);
sbi               689 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_CP_NODE_IO]);
sbi               691 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_CP_META_IO]);
sbi               693 fs/f2fs/sysfs.c 				sbi->write_iostat[FS_DISCARD]);
sbi               702 fs/f2fs/sysfs.c 	struct f2fs_sb_info *sbi = F2FS_SB(sb);
sbi               703 fs/f2fs/sysfs.c 	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);
sbi               708 fs/f2fs/sysfs.c 	for (i = 0; i < MAIN_SECS(sbi); i++) {
sbi               712 fs/f2fs/sysfs.c 		if ((i % 10) == 9 || i == (MAIN_SECS(sbi) - 1))
sbi               749 fs/f2fs/sysfs.c int f2fs_register_sysfs(struct f2fs_sb_info *sbi)
sbi               751 fs/f2fs/sysfs.c 	struct super_block *sb = sbi->sb;
sbi               754 fs/f2fs/sysfs.c 	sbi->s_kobj.kset = &f2fs_kset;
sbi               755 fs/f2fs/sysfs.c 	init_completion(&sbi->s_kobj_unregister);
sbi               756 fs/f2fs/sysfs.c 	err = kobject_init_and_add(&sbi->s_kobj, &f2fs_sb_ktype, NULL,
sbi               759 fs/f2fs/sysfs.c 		kobject_put(&sbi->s_kobj);
sbi               760 fs/f2fs/sysfs.c 		wait_for_completion(&sbi->s_kobj_unregister);
sbi               765 fs/f2fs/sysfs.c 		sbi->s_proc = proc_mkdir(sb->s_id, f2fs_proc_root);
sbi               767 fs/f2fs/sysfs.c 	if (sbi->s_proc) {
sbi               768 fs/f2fs/sysfs.c 		proc_create_single_data("segment_info", S_IRUGO, sbi->s_proc,
sbi               770 fs/f2fs/sysfs.c 		proc_create_single_data("segment_bits", S_IRUGO, sbi->s_proc,
sbi               772 fs/f2fs/sysfs.c 		proc_create_single_data("iostat_info", S_IRUGO, sbi->s_proc,
sbi               774 fs/f2fs/sysfs.c 		proc_create_single_data("victim_bits", S_IRUGO, sbi->s_proc,
sbi               780 fs/f2fs/sysfs.c void f2fs_unregister_sysfs(struct f2fs_sb_info *sbi)
sbi               782 fs/f2fs/sysfs.c 	if (sbi->s_proc) {
sbi               783 fs/f2fs/sysfs.c 		remove_proc_entry("iostat_info", sbi->s_proc);
sbi               784 fs/f2fs/sysfs.c 		remove_proc_entry("segment_info", sbi->s_proc);
sbi               785 fs/f2fs/sysfs.c 		remove_proc_entry("segment_bits", sbi->s_proc);
sbi               786 fs/f2fs/sysfs.c 		remove_proc_entry("victim_bits", sbi->s_proc);
sbi               787 fs/f2fs/sysfs.c 		remove_proc_entry(sbi->sb->s_id, f2fs_proc_root);
sbi               789 fs/f2fs/sysfs.c 	kobject_del(&sbi->s_kobj);
sbi               790 fs/f2fs/sysfs.c 	kobject_put(&sbi->s_kobj);
sbi                30 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
sbi                34 fs/f2fs/xattr.c 		if (!test_opt(sbi, XATTR_USER))
sbi                52 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
sbi                56 fs/f2fs/xattr.c 		if (!test_opt(sbi, XATTR_USER))
sbi                71 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_SB(dentry->d_sb);
sbi                73 fs/f2fs/xattr.c 	return test_opt(sbi, XATTR_USER);
sbi               261 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               269 fs/f2fs/xattr.c 		page = f2fs_get_node_page(sbi, inode->i_ino);
sbi               283 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               290 fs/f2fs/xattr.c 	xpage = f2fs_get_node_page(sbi, xnid);
sbi               415 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               425 fs/f2fs/xattr.c 		if (!f2fs_alloc_nid(sbi, &new_nid))
sbi               433 fs/f2fs/xattr.c 			in_page = f2fs_get_node_page(sbi, inode->i_ino);
sbi               435 fs/f2fs/xattr.c 				f2fs_alloc_nid_failed(sbi, new_nid);
sbi               446 fs/f2fs/xattr.c 			f2fs_alloc_nid_failed(sbi, new_nid);
sbi               459 fs/f2fs/xattr.c 		xpage = f2fs_get_node_page(sbi, F2FS_I(inode)->i_xattr_nid);
sbi               462 fs/f2fs/xattr.c 			f2fs_alloc_nid_failed(sbi, new_nid);
sbi               465 fs/f2fs/xattr.c 		f2fs_bug_on(sbi, new_nid);
sbi               473 fs/f2fs/xattr.c 			f2fs_alloc_nid_failed(sbi, new_nid);
sbi               476 fs/f2fs/xattr.c 		f2fs_alloc_nid_done(sbi, new_nid);
sbi               742 fs/f2fs/xattr.c 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
sbi               745 fs/f2fs/xattr.c 	if (unlikely(f2fs_cp_error(sbi)))
sbi               747 fs/f2fs/xattr.c 	if (!f2fs_is_checkpoint_ready(sbi))
sbi               758 fs/f2fs/xattr.c 	f2fs_balance_fs(sbi, true);
sbi               760 fs/f2fs/xattr.c 	f2fs_lock_op(sbi);
sbi               767 fs/f2fs/xattr.c 	f2fs_unlock_op(sbi);
sbi               769 fs/f2fs/xattr.c 	f2fs_update_time(sbi, REQ_TIME);
sbi               228 fs/fat/cache.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               229 fs/fat/cache.c 	const int limit = sb->s_maxbytes >> sbi->cluster_bits;
sbi               238 fs/fat/cache.c 	if (!fat_valid_entry(sbi, *dclus)) {
sbi               315 fs/fat/cache.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               318 fs/fat/cache.c 	cluster = sector >> (sbi->cluster_bits - sb->s_blocksize_bits);
sbi               319 fs/fat/cache.c 	offset  = sector & (sbi->sec_per_clus - 1);
sbi               324 fs/fat/cache.c 		*bmap = fat_clus_to_blknr(sbi, cluster) + offset;
sbi               325 fs/fat/cache.c 		*mapped_blocks = sbi->sec_per_clus - offset;
sbi               361 fs/fat/cache.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               366 fs/fat/cache.c 	if (!is_fat32(sbi) && (inode->i_ino == MSDOS_ROOT_INO)) {
sbi               367 fs/fat/cache.c 		if (sector < (sbi->dir_entries >> sbi->dir_per_block_bits)) {
sbi               368 fs/fat/cache.c 			*phys = sector + sbi->dir_start;
sbi                53 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi                58 fs/fat/dir.c   	if ((iblock & (sbi->sec_per_clus - 1)) || sbi->sec_per_clus == 1)
sbi                61 fs/fat/dir.c   	if (!is_fat32(sbi) && (dir->i_ino == MSDOS_ROOT_INO))
sbi                66 fs/fat/dir.c   		for (sec = 0; sec < sbi->sec_per_clus; sec++)
sbi               184 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               185 fs/fat/dir.c   	if (sbi->options.utf8)
sbi               189 fs/fat/dir.c   		return uni16_to_x8(sb, buf, uni, size, sbi->nls_io);
sbi               254 fs/fat/dir.c   static inline int fat_name_match(struct msdos_sb_info *sbi,
sbi               261 fs/fat/dir.c   	if (sbi->options.name_check != 's')
sbi               262 fs/fat/dir.c   		return !nls_strnicmp(sbi->nls_io, a, b, a_len);
sbi               353 fs/fat/dir.c   	const struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               354 fs/fat/dir.c   	int isvfat = sbi->options.isvfat;
sbi               355 fs/fat/dir.c   	int nocase = sbi->options.nocase;
sbi               356 fs/fat/dir.c   	unsigned short opt_shortname = sbi->options.shortname;
sbi               357 fs/fat/dir.c   	struct nls_table *nls_disk = sbi->nls_disk;
sbi               450 fs/fat/dir.c   		if (sbi->options.isvfat) {
sbi               467 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               512 fs/fat/dir.c   		if (fat_name_match(sbi, name, name_len, bufname, len))
sbi               521 fs/fat/dir.c   			if (fat_name_match(sbi, name, name_len, longname, len))
sbi               558 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               564 fs/fat/dir.c   	int isvfat = sbi->options.isvfat;
sbi               571 fs/fat/dir.c   	mutex_lock(&sbi->s_lock);
sbi               636 fs/fat/dir.c   						    sbi->options.dotsOK);
sbi               650 fs/fat/dir.c   	short_len = fat_parse_short(sb, de, bufname, sbi->options.dotsOK);
sbi               697 fs/fat/dir.c   	mutex_unlock(&sbi->s_lock);
sbi              1140 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi              1152 fs/fat/dir.c   	blknr = fat_clus_to_blknr(sbi, cluster);
sbi              1159 fs/fat/dir.c   	fat_time_unix2fat(sbi, ts, &time, &date, &time_cs);
sbi              1171 fs/fat/dir.c   	if (sbi->options.isvfat) {
sbi              1207 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi              1219 fs/fat/dir.c   	*nr_cluster = (size + (sbi->cluster_size - 1)) >> sbi->cluster_bits;
sbi              1233 fs/fat/dir.c   		start_blknr = blknr = fat_clus_to_blknr(sbi, cluster[i]);
sbi              1234 fs/fat/dir.c   		last_blknr = start_blknr + sbi->sec_per_clus;
sbi              1289 fs/fat/dir.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi              1324 fs/fat/dir.c   		if (!is_fat32(sbi))
sbi              1391 fs/fat/dir.c   		if (dir->i_size & (sbi->cluster_size - 1)) {
sbi              1393 fs/fat/dir.c   			dir->i_size = (dir->i_size + sbi->cluster_size - 1)
sbi              1394 fs/fat/dir.c   				& ~((loff_t)sbi->cluster_size - 1);
sbi              1396 fs/fat/dir.c   		dir->i_size += nr_cluster << sbi->cluster_bits;
sbi              1397 fs/fat/dir.c   		MSDOS_I(dir)->mmu_private += nr_cluster << sbi->cluster_bits;
sbi               149 fs/fat/fat.h   static inline bool is_fat12(const struct msdos_sb_info *sbi)
sbi               151 fs/fat/fat.h   	return sbi->fat_bits == 12;
sbi               154 fs/fat/fat.h   static inline bool is_fat16(const struct msdos_sb_info *sbi)
sbi               156 fs/fat/fat.h   	return sbi->fat_bits == 16;
sbi               159 fs/fat/fat.h   static inline bool is_fat32(const struct msdos_sb_info *sbi)
sbi               161 fs/fat/fat.h   	return sbi->fat_bits == 32;
sbi               167 fs/fat/fat.h   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               169 fs/fat/fat.h   	return is_fat32(sbi) ? MAX_FAT32 :
sbi               170 fs/fat/fat.h   		is_fat16(sbi) ? MAX_FAT16 : MAX_FAT12;
sbi               187 fs/fat/fat.h   	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               191 fs/fat/fat.h   		if (!sbi->options.rodir)
sbi               193 fs/fat/fat.h   		mask = ~sbi->options.fs_dmask;
sbi               195 fs/fat/fat.h   		mask = ~sbi->options.fs_fmask;
sbi               203 fs/fat/fat.h   static inline umode_t fat_make_mode(struct msdos_sb_info *sbi,
sbi               206 fs/fat/fat.h   	if (attrs & ATTR_RO && !((attrs & ATTR_DIR) && !sbi->options.rodir))
sbi               210 fs/fat/fat.h   		return (mode & ~sbi->options.fs_dmask) | S_IFDIR;
sbi               212 fs/fat/fat.h   		return (mode & ~sbi->options.fs_fmask) | S_IFREG;
sbi               245 fs/fat/fat.h   static inline sector_t fat_clus_to_blknr(struct msdos_sb_info *sbi, int clus)
sbi               247 fs/fat/fat.h   	return ((sector_t)clus - FAT_START_ENT) * sbi->sec_per_clus
sbi               248 fs/fat/fat.h   		+ sbi->data_start;
sbi               251 fs/fat/fat.h   static inline void fat_get_blknr_offset(struct msdos_sb_info *sbi,
sbi               254 fs/fat/fat.h   	*blknr = i_pos >> sbi->dir_per_block_bits;
sbi               255 fs/fat/fat.h   	*offset = i_pos & (sbi->dir_per_block - 1);
sbi               258 fs/fat/fat.h   static inline loff_t fat_i_pos_read(struct msdos_sb_info *sbi,
sbi               263 fs/fat/fat.h   	spin_lock(&sbi->inode_hash_lock);
sbi               267 fs/fat/fat.h   	spin_unlock(&sbi->inode_hash_lock);
sbi               284 fs/fat/fat.h   static inline int fat_get_start(const struct msdos_sb_info *sbi,
sbi               288 fs/fat/fat.h   	if (is_fat32(sbi))
sbi               379 fs/fat/fat.h   static inline bool fat_valid_entry(struct msdos_sb_info *sbi, int entry)
sbi               381 fs/fat/fat.h   	return FAT_START_ENT <= entry && entry < sbi->max_cluster;
sbi               443 fs/fat/fat.h   extern void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec64 *ts,
sbi               445 fs/fat/fat.h   extern void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec64 *ts,
sbi                25 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi                27 fs/fat/fatent.c 	WARN_ON(!fat_valid_entry(sbi, entry));
sbi                29 fs/fat/fatent.c 	*blocknr = sbi->fat_start + (bytes >> sb->s_blocksize_bits);
sbi                35 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi                36 fs/fat/fatent.c 	int bytes = (entry << sbi->fatent_shift);
sbi                37 fs/fat/fatent.c 	WARN_ON(!fat_valid_entry(sbi, entry));
sbi                39 fs/fat/fatent.c 	*blocknr = sbi->fat_start + (bytes >> sb->s_blocksize_bits);
sbi               277 fs/fat/fatent.c static inline void lock_fat(struct msdos_sb_info *sbi)
sbi               279 fs/fat/fatent.c 	mutex_lock(&sbi->fat_lock);
sbi               282 fs/fat/fatent.c static inline void unlock_fat(struct msdos_sb_info *sbi)
sbi               284 fs/fat/fatent.c 	mutex_unlock(&sbi->fat_lock);
sbi               289 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               291 fs/fat/fatent.c 	mutex_init(&sbi->fat_lock);
sbi               293 fs/fat/fatent.c 	if (is_fat32(sbi)) {
sbi               294 fs/fat/fatent.c 		sbi->fatent_shift = 2;
sbi               295 fs/fat/fatent.c 		sbi->fatent_ops = &fat32_ops;
sbi               296 fs/fat/fatent.c 	} else if (is_fat16(sbi)) {
sbi               297 fs/fat/fatent.c 		sbi->fatent_shift = 1;
sbi               298 fs/fat/fatent.c 		sbi->fatent_ops = &fat16_ops;
sbi               299 fs/fat/fatent.c 	} else if (is_fat12(sbi)) {
sbi               300 fs/fat/fatent.c 		sbi->fatent_shift = -1;
sbi               301 fs/fat/fatent.c 		sbi->fatent_ops = &fat12_ops;
sbi               303 fs/fat/fatent.c 		fat_fs_error(sb, "invalid FAT variant, %u bits", sbi->fat_bits);
sbi               309 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               311 fs/fat/fatent.c 	if (sb_rdonly(sb) || !is_fat32(sbi))
sbi               314 fs/fat/fatent.c 	__mark_inode_dirty(sbi->fsinfo_inode, I_DIRTY_SYNC);
sbi               321 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               322 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               328 fs/fat/fatent.c 	if (is_fat12(sbi)) {
sbi               350 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               351 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               355 fs/fat/fatent.c 	if (!fat_valid_entry(sbi, entry)) {
sbi               377 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               382 fs/fat/fatent.c 	for (copy = 1; copy < sbi->fats; copy++) {
sbi               383 fs/fat/fatent.c 		sector_t backup_fat = sbi->fat_length * copy;
sbi               396 fs/fat/fatent.c 			mark_buffer_dirty_inode(c_bh, sbi->fat_inode);
sbi               424 fs/fat/fatent.c static inline int fat_ent_next(struct msdos_sb_info *sbi,
sbi               427 fs/fat/fatent.c 	if (sbi->fatent_ops->ent_next(fatent)) {
sbi               428 fs/fat/fatent.c 		if (fatent->entry < sbi->max_cluster)
sbi               467 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               468 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               475 fs/fat/fatent.c 	lock_fat(sbi);
sbi               476 fs/fat/fatent.c 	if (sbi->free_clusters != -1 && sbi->free_clus_valid &&
sbi               477 fs/fat/fatent.c 	    sbi->free_clusters < nr_cluster) {
sbi               478 fs/fat/fatent.c 		unlock_fat(sbi);
sbi               486 fs/fat/fatent.c 	fatent_set_entry(&fatent, sbi->prev_free + 1);
sbi               487 fs/fat/fatent.c 	while (count < sbi->max_cluster) {
sbi               488 fs/fat/fatent.c 		if (fatent.entry >= sbi->max_cluster)
sbi               507 fs/fat/fatent.c 				sbi->prev_free = entry;
sbi               508 fs/fat/fatent.c 				if (sbi->free_clusters != -1)
sbi               509 fs/fat/fatent.c 					sbi->free_clusters--;
sbi               523 fs/fat/fatent.c 			if (count == sbi->max_cluster)
sbi               525 fs/fat/fatent.c 		} while (fat_ent_next(sbi, &fatent));
sbi               529 fs/fat/fatent.c 	sbi->free_clusters = 0;
sbi               530 fs/fat/fatent.c 	sbi->free_clus_valid = 1;
sbi               534 fs/fat/fatent.c 	unlock_fat(sbi);
sbi               555 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               556 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               564 fs/fat/fatent.c 	lock_fat(sbi);
sbi               577 fs/fat/fatent.c 		if (sbi->options.discard) {
sbi               587 fs/fat/fatent.c 					fat_clus_to_blknr(sbi, first_cl),
sbi               588 fs/fat/fatent.c 					nr_clus * sbi->sec_per_clus,
sbi               596 fs/fat/fatent.c 		if (sbi->free_clusters != -1) {
sbi               597 fs/fat/fatent.c 			sbi->free_clusters++;
sbi               627 fs/fat/fatent.c 	unlock_fat(sbi);
sbi               653 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               654 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               659 fs/fat/fatent.c 	lock_fat(sbi);
sbi               660 fs/fat/fatent.c 	if (sbi->free_clusters != -1 && sbi->free_clus_valid)
sbi               670 fs/fat/fatent.c 	while (fatent.entry < sbi->max_cluster) {
sbi               673 fs/fat/fatent.c 			unsigned long rest = sbi->fat_length - cur_block;
sbi               685 fs/fat/fatent.c 		} while (fat_ent_next(sbi, &fatent));
sbi               688 fs/fat/fatent.c 	sbi->free_clusters = free;
sbi               689 fs/fat/fatent.c 	sbi->free_clus_valid = 1;
sbi               693 fs/fat/fatent.c 	unlock_fat(sbi);
sbi               699 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               700 fs/fat/fatent.c 	return sb_issue_discard(sb, fat_clus_to_blknr(sbi, clus),
sbi               701 fs/fat/fatent.c 				nr_clus * sbi->sec_per_clus, GFP_NOFS, 0);
sbi               707 fs/fat/fatent.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               708 fs/fat/fatent.c 	const struct fatent_operations *ops = sbi->fatent_ops;
sbi               721 fs/fat/fatent.c 	ent_start = max_t(u64, range->start>>sbi->cluster_bits, FAT_START_ENT);
sbi               722 fs/fat/fatent.c 	ent_end = ent_start + (range->len >> sbi->cluster_bits) - 1;
sbi               723 fs/fat/fatent.c 	minlen = range->minlen >> sbi->cluster_bits;
sbi               725 fs/fat/fatent.c 	if (ent_start >= sbi->max_cluster || range->len < sbi->cluster_size)
sbi               727 fs/fat/fatent.c 	if (ent_end >= sbi->max_cluster)
sbi               728 fs/fat/fatent.c 		ent_end = sbi->max_cluster - 1;
sbi               734 fs/fat/fatent.c 	lock_fat(sbi);
sbi               739 fs/fat/fatent.c 			unsigned long rest = sbi->fat_length - cur_block;
sbi               763 fs/fat/fatent.c 		} while (fat_ent_next(sbi, &fatent) && fatent.entry <= ent_end);
sbi               772 fs/fat/fatent.c 			unlock_fat(sbi);
sbi               774 fs/fat/fatent.c 			lock_fat(sbi);
sbi               791 fs/fat/fatent.c 	unlock_fat(sbi);
sbi               793 fs/fat/fatent.c 	range->len = trimmed << sbi->cluster_bits;
sbi                38 fs/fat/file.c  	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi                69 fs/fat/file.c  		ia.ia_mode = fat_make_mode(sbi, attr, S_IRWXUGO);
sbi                71 fs/fat/file.c  		ia.ia_mode = fat_make_mode(sbi, attr,
sbi                81 fs/fat/file.c  	if (sbi->options.sys_immutable &&
sbi               103 fs/fat/file.c  	if (sbi->options.sys_immutable) {
sbi               121 fs/fat/file.c  	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               122 fs/fat/file.c  	return put_user(sbi->vol_id, user_attr);
sbi               278 fs/fat/file.c  	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               297 fs/fat/file.c  		nr_cluster = (mm_bytes + (sbi->cluster_size - 1)) >>
sbi               298 fs/fat/file.c  			sbi->cluster_bits;
sbi               391 fs/fat/file.c  	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               392 fs/fat/file.c  	const unsigned int cluster_size = sbi->cluster_size;
sbi               402 fs/fat/file.c  	nr_clusters = (offset + (cluster_size - 1)) >> sbi->cluster_bits;
sbi               423 fs/fat/file.c  static int fat_sanitize_mode(const struct msdos_sb_info *sbi,
sbi               434 fs/fat/file.c  		mask = sbi->options.fs_fmask;
sbi               436 fs/fat/file.c  		mask = sbi->options.fs_dmask;
sbi               461 fs/fat/file.c  static int fat_allow_set_time(struct msdos_sb_info *sbi, struct inode *inode)
sbi               463 fs/fat/file.c  	umode_t allow_utime = sbi->options.allow_utime;
sbi               482 fs/fat/file.c  	struct msdos_sb_info *sbi = MSDOS_SB(dentry->d_sb);
sbi               490 fs/fat/file.c  		if (fat_allow_set_time(sbi, inode))
sbi               497 fs/fat/file.c  		if (sbi->options.quiet)
sbi               520 fs/fat/file.c  	     (!uid_eq(attr->ia_uid, sbi->options.fs_uid))) ||
sbi               522 fs/fat/file.c  	     (!gid_eq(attr->ia_gid, sbi->options.fs_gid))) ||
sbi               528 fs/fat/file.c  		if (sbi->options.quiet)
sbi               538 fs/fat/file.c  		if (fat_sanitize_mode(sbi, inode, &attr->ia_mode) < 0)
sbi               123 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               146 fs/fat/inode.c 	offset = (unsigned long)iblock & (sbi->sec_per_clus - 1);
sbi               159 fs/fat/inode.c 	mapped_blocks = sbi->sec_per_clus - offset;
sbi               381 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               384 fs/fat/inode.c 	spin_lock_init(&sbi->inode_hash_lock);
sbi               386 fs/fat/inode.c 		INIT_HLIST_HEAD(&sbi->inode_hashtable[i]);
sbi               396 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               399 fs/fat/inode.c 	spin_lock_init(&sbi->dir_hash_lock);
sbi               401 fs/fat/inode.c 		INIT_HLIST_HEAD(&sbi->dir_hashtable[i]);
sbi               406 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               409 fs/fat/inode.c 		struct hlist_head *head =   sbi->inode_hashtable
sbi               412 fs/fat/inode.c 		spin_lock(&sbi->inode_hash_lock);
sbi               415 fs/fat/inode.c 		spin_unlock(&sbi->inode_hash_lock);
sbi               422 fs/fat/inode.c 	if (S_ISDIR(inode->i_mode) && sbi->options.nfs) {
sbi               423 fs/fat/inode.c 		struct hlist_head *d_head = sbi->dir_hashtable;
sbi               426 fs/fat/inode.c 		spin_lock(&sbi->dir_hash_lock);
sbi               428 fs/fat/inode.c 		spin_unlock(&sbi->dir_hash_lock);
sbi               435 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               436 fs/fat/inode.c 	spin_lock(&sbi->inode_hash_lock);
sbi               439 fs/fat/inode.c 	spin_unlock(&sbi->inode_hash_lock);
sbi               441 fs/fat/inode.c 	if (S_ISDIR(inode->i_mode) && sbi->options.nfs) {
sbi               442 fs/fat/inode.c 		spin_lock(&sbi->dir_hash_lock);
sbi               444 fs/fat/inode.c 		spin_unlock(&sbi->dir_hash_lock);
sbi               451 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               452 fs/fat/inode.c 	struct hlist_head *head = sbi->inode_hashtable + fat_hash(i_pos);
sbi               456 fs/fat/inode.c 	spin_lock(&sbi->inode_hash_lock);
sbi               465 fs/fat/inode.c 	spin_unlock(&sbi->inode_hash_lock);
sbi               481 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               491 fs/fat/inode.c 	inode->i_size = (fclus + 1) << sbi->cluster_bits;
sbi               517 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               521 fs/fat/inode.c 	inode->i_uid = sbi->options.fs_uid;
sbi               522 fs/fat/inode.c 	inode->i_gid = sbi->options.fs_gid;
sbi               528 fs/fat/inode.c 		inode->i_mode = fat_make_mode(sbi, de->attr, S_IRWXUGO);
sbi               529 fs/fat/inode.c 		inode->i_op = sbi->dir_ops;
sbi               532 fs/fat/inode.c 		MSDOS_I(inode)->i_start = fat_get_start(sbi, de);
sbi               546 fs/fat/inode.c 		inode->i_mode = fat_make_mode(sbi, de->attr,
sbi               547 fs/fat/inode.c 			((sbi->options.showexec && !is_exec(de->name + 8))
sbi               549 fs/fat/inode.c 		MSDOS_I(inode)->i_start = fat_get_start(sbi, de);
sbi               559 fs/fat/inode.c 		if (sbi->options.sys_immutable)
sbi               564 fs/fat/inode.c 	inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))
sbi               565 fs/fat/inode.c 			   & ~((loff_t)sbi->cluster_size - 1)) >> 9;
sbi               567 fs/fat/inode.c 	fat_time_fat2unix(sbi, &inode->i_mtime, de->time, de->date, 0);
sbi               568 fs/fat/inode.c 	if (sbi->options.isvfat) {
sbi               569 fs/fat/inode.c 		fat_time_fat2unix(sbi, &inode->i_ctime, de->ctime,
sbi               571 fs/fat/inode.c 		fat_time_fat2unix(sbi, &inode->i_atime, 0, de->adate, 0);
sbi               578 fs/fat/inode.c static inline void fat_lock_build_inode(struct msdos_sb_info *sbi)
sbi               580 fs/fat/inode.c 	if (sbi->options.nfs == FAT_NFS_NOSTALE_RO)
sbi               581 fs/fat/inode.c 		mutex_lock(&sbi->nfs_build_inode_lock);
sbi               584 fs/fat/inode.c static inline void fat_unlock_build_inode(struct msdos_sb_info *sbi)
sbi               586 fs/fat/inode.c 	if (sbi->options.nfs == FAT_NFS_NOSTALE_RO)
sbi               587 fs/fat/inode.c 		mutex_unlock(&sbi->nfs_build_inode_lock);
sbi               670 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               677 fs/fat/inode.c 	if (sbi->dirty) {
sbi               695 fs/fat/inode.c 	if (is_fat32(sbi)) {
sbi               723 fs/fat/inode.c 	struct msdos_sb_info *sbi = container_of(p, struct msdos_sb_info, rcu);
sbi               724 fs/fat/inode.c 	unload_nls(sbi->nls_disk);
sbi               725 fs/fat/inode.c 	unload_nls(sbi->nls_io);
sbi               726 fs/fat/inode.c 	fat_reset_iocharset(&sbi->options);
sbi               727 fs/fat/inode.c 	kfree(sbi);
sbi               732 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               736 fs/fat/inode.c 	iput(sbi->fsinfo_inode);
sbi               737 fs/fat/inode.c 	iput(sbi->fat_inode);
sbi               739 fs/fat/inode.c 	call_rcu(&sbi->rcu, delayed_free);
sbi               805 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               806 fs/fat/inode.c 	*flags |= SB_NODIRATIME | (sbi->options.isvfat ? 0 : SB_NOATIME);
sbi               824 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               828 fs/fat/inode.c 	if (sbi->free_clusters == -1 || !sbi->free_clus_valid) {
sbi               835 fs/fat/inode.c 	buf->f_bsize = sbi->cluster_size;
sbi               836 fs/fat/inode.c 	buf->f_blocks = sbi->max_cluster - FAT_START_ENT;
sbi               837 fs/fat/inode.c 	buf->f_bfree = sbi->free_clusters;
sbi               838 fs/fat/inode.c 	buf->f_bavail = sbi->free_clusters;
sbi               842 fs/fat/inode.c 		(sbi->options.isvfat ? FAT_LFN_LEN : 12) * NLS_MAX_CHARSET_SIZE;
sbi               850 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               861 fs/fat/inode.c 	i_pos = fat_i_pos_read(sbi, inode);
sbi               865 fs/fat/inode.c 	fat_get_blknr_offset(sbi, i_pos, &blocknr, &offset);
sbi               872 fs/fat/inode.c 	spin_lock(&sbi->inode_hash_lock);
sbi               874 fs/fat/inode.c 		spin_unlock(&sbi->inode_hash_lock);
sbi               886 fs/fat/inode.c 	fat_time_unix2fat(sbi, &inode->i_mtime, &raw_entry->time,
sbi               888 fs/fat/inode.c 	if (sbi->options.isvfat) {
sbi               890 fs/fat/inode.c 		fat_time_unix2fat(sbi, &inode->i_ctime, &raw_entry->ctime,
sbi               892 fs/fat/inode.c 		fat_time_unix2fat(sbi, &inode->i_atime, &atime,
sbi               895 fs/fat/inode.c 	spin_unlock(&sbi->inode_hash_lock);
sbi               942 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(root->d_sb);
sbi               943 fs/fat/inode.c 	struct fat_mount_options *opts = &sbi->options;
sbi               956 fs/fat/inode.c 	if (sbi->nls_disk)
sbi               958 fs/fat/inode.c 		seq_printf(m, ",codepage=%s", &sbi->nls_disk->charset[2]);
sbi               960 fs/fat/inode.c 		if (sbi->nls_io)
sbi               961 fs/fat/inode.c 			seq_printf(m, ",iocharset=%s", sbi->nls_io->charset);
sbi              1385 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi              1389 fs/fat/inode.c 	inode->i_uid = sbi->options.fs_uid;
sbi              1390 fs/fat/inode.c 	inode->i_gid = sbi->options.fs_gid;
sbi              1393 fs/fat/inode.c 	inode->i_mode = fat_make_mode(sbi, ATTR_DIR, S_IRWXUGO);
sbi              1394 fs/fat/inode.c 	inode->i_op = sbi->dir_ops;
sbi              1396 fs/fat/inode.c 	if (is_fat32(sbi)) {
sbi              1397 fs/fat/inode.c 		MSDOS_I(inode)->i_start = sbi->root_cluster;
sbi              1403 fs/fat/inode.c 		inode->i_size = sbi->dir_entries * sizeof(struct msdos_dir_entry);
sbi              1405 fs/fat/inode.c 	inode->i_blocks = ((inode->i_size + (sbi->cluster_size - 1))
sbi              1406 fs/fat/inode.c 			   & ~((loff_t)sbi->cluster_size - 1)) >> 9;
sbi              1420 fs/fat/inode.c 	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi              1423 fs/fat/inode.c 	if (!is_fat12(sbi)) {
sbi              1424 fs/fat/inode.c 		unsigned long ent_per_sec = sb->s_blocksize * 8 / sbi->fat_bits;
sbi              1425 fs/fat/inode.c 		return ent_per_sec * sbi->fat_length;
sbi              1428 fs/fat/inode.c 	return sbi->fat_length * sb->s_blocksize * 8 / sbi->fat_bits;
sbi              1610 fs/fat/inode.c 	struct msdos_sb_info *sbi;
sbi              1624 fs/fat/inode.c 	sbi = kzalloc(sizeof(struct msdos_sb_info), GFP_KERNEL);
sbi              1625 fs/fat/inode.c 	if (!sbi)
sbi              1627 fs/fat/inode.c 	sb->s_fs_info = sbi;
sbi              1638 fs/fat/inode.c 	mutex_init(&sbi->nfs_build_inode_lock);
sbi              1639 fs/fat/inode.c 	ratelimit_state_init(&sbi->ratelimit, DEFAULT_RATELIMIT_INTERVAL,
sbi              1642 fs/fat/inode.c 	error = parse_options(sb, data, isvfat, silent, &debug, &sbi->options);
sbi              1658 fs/fat/inode.c 	if (error == -EINVAL && sbi->options.dos1xfloppy)
sbi              1669 fs/fat/inode.c 	sbi->sec_per_clus = bpb.fat_sec_per_clus;
sbi              1698 fs/fat/inode.c 	mutex_init(&sbi->s_lock);
sbi              1699 fs/fat/inode.c 	sbi->cluster_size = sb->s_blocksize * sbi->sec_per_clus;
sbi              1700 fs/fat/inode.c 	sbi->cluster_bits = ffs(sbi->cluster_size) - 1;
sbi              1701 fs/fat/inode.c 	sbi->fats = bpb.fat_fats;
sbi              1702 fs/fat/inode.c 	sbi->fat_bits = 0;		/* Don't know yet */
sbi              1703 fs/fat/inode.c 	sbi->fat_start = bpb.fat_reserved;
sbi              1704 fs/fat/inode.c 	sbi->fat_length = bpb.fat_fat_length;
sbi              1705 fs/fat/inode.c 	sbi->root_cluster = 0;
sbi              1706 fs/fat/inode.c 	sbi->free_clusters = -1;	/* Don't know yet */
sbi              1707 fs/fat/inode.c 	sbi->free_clus_valid = 0;
sbi              1708 fs/fat/inode.c 	sbi->prev_free = FAT_START_ENT;
sbi              1710 fs/fat/inode.c 	fat_time_fat2unix(sbi, &ts, 0, cpu_to_le16(FAT_DATE_MIN), 0);
sbi              1713 fs/fat/inode.c 	fat_time_fat2unix(sbi, &ts, cpu_to_le16(FAT_TIME_MAX),
sbi              1717 fs/fat/inode.c 	if (!sbi->fat_length && bpb.fat32_length) {
sbi              1722 fs/fat/inode.c 		sbi->fat_bits = 32;
sbi              1723 fs/fat/inode.c 		sbi->fat_length = bpb.fat32_length;
sbi              1724 fs/fat/inode.c 		sbi->root_cluster = bpb.fat32_root_cluster;
sbi              1727 fs/fat/inode.c 		sbi->fsinfo_sector = bpb.fat32_info_sector;
sbi              1728 fs/fat/inode.c 		if (sbi->fsinfo_sector == 0)
sbi              1729 fs/fat/inode.c 			sbi->fsinfo_sector = 1;
sbi              1731 fs/fat/inode.c 		fsinfo_bh = sb_bread(sb, sbi->fsinfo_sector);
sbi              1734 fs/fat/inode.c 			       " (sector = %lu)", sbi->fsinfo_sector);
sbi              1744 fs/fat/inode.c 			       sbi->fsinfo_sector);
sbi              1746 fs/fat/inode.c 			if (sbi->options.usefree)
sbi              1747 fs/fat/inode.c 				sbi->free_clus_valid = 1;
sbi              1748 fs/fat/inode.c 			sbi->free_clusters = le32_to_cpu(fsinfo->free_clusters);
sbi              1749 fs/fat/inode.c 			sbi->prev_free = le32_to_cpu(fsinfo->next_cluster);
sbi              1756 fs/fat/inode.c 	if (is_fat32(sbi))
sbi              1757 fs/fat/inode.c 		sbi->vol_id = bpb.fat32_vol_id;
sbi              1759 fs/fat/inode.c 		sbi->vol_id = bpb.fat16_vol_id;
sbi              1761 fs/fat/inode.c 	sbi->dir_per_block = sb->s_blocksize / sizeof(struct msdos_dir_entry);
sbi              1762 fs/fat/inode.c 	sbi->dir_per_block_bits = ffs(sbi->dir_per_block) - 1;
sbi              1764 fs/fat/inode.c 	sbi->dir_start = sbi->fat_start + sbi->fats * sbi->fat_length;
sbi              1765 fs/fat/inode.c 	sbi->dir_entries = bpb.fat_dir_entries;
sbi              1766 fs/fat/inode.c 	if (sbi->dir_entries & (sbi->dir_per_block - 1)) {
sbi              1769 fs/fat/inode.c 			       " (%u)", sbi->dir_entries);
sbi              1773 fs/fat/inode.c 	rootdir_sectors = sbi->dir_entries
sbi              1775 fs/fat/inode.c 	sbi->data_start = sbi->dir_start + rootdir_sectors;
sbi              1780 fs/fat/inode.c 	total_clusters = (total_sectors - sbi->data_start) / sbi->sec_per_clus;
sbi              1782 fs/fat/inode.c 	if (!is_fat32(sbi))
sbi              1783 fs/fat/inode.c 		sbi->fat_bits = (total_clusters > MAX_FAT12) ? 16 : 12;
sbi              1786 fs/fat/inode.c 	if (is_fat32(sbi))
sbi              1787 fs/fat/inode.c 		sbi->dirty = bpb.fat32_state & FAT_STATE_DIRTY;
sbi              1789 fs/fat/inode.c 		sbi->dirty = bpb.fat16_state & FAT_STATE_DIRTY;
sbi              1801 fs/fat/inode.c 	sbi->max_cluster = total_clusters + FAT_START_ENT;
sbi              1803 fs/fat/inode.c 	if (sbi->free_clusters != -1 && sbi->free_clusters > total_clusters)
sbi              1804 fs/fat/inode.c 		sbi->free_clusters = -1;
sbi              1806 fs/fat/inode.c 	sbi->prev_free %= sbi->max_cluster;
sbi              1807 fs/fat/inode.c 	if (sbi->prev_free < FAT_START_ENT)
sbi              1808 fs/fat/inode.c 		sbi->prev_free = FAT_START_ENT;
sbi              1828 fs/fat/inode.c 	sprintf(buf, "cp%d", sbi->options.codepage);
sbi              1829 fs/fat/inode.c 	sbi->nls_disk = load_nls(buf);
sbi              1830 fs/fat/inode.c 	if (!sbi->nls_disk) {
sbi              1836 fs/fat/inode.c 	if (sbi->options.isvfat) {
sbi              1837 fs/fat/inode.c 		sbi->nls_io = load_nls(sbi->options.iocharset);
sbi              1838 fs/fat/inode.c 		if (!sbi->nls_io) {
sbi              1840 fs/fat/inode.c 			       sbi->options.iocharset);
sbi              1849 fs/fat/inode.c 	sbi->fat_inode = fat_inode;
sbi              1855 fs/fat/inode.c 	sbi->fsinfo_inode = fsinfo_inode;
sbi              1877 fs/fat/inode.c 	if (sbi->options.discard) {
sbi              1898 fs/fat/inode.c 	unload_nls(sbi->nls_io);
sbi              1899 fs/fat/inode.c 	unload_nls(sbi->nls_disk);
sbi              1900 fs/fat/inode.c 	fat_reset_iocharset(&sbi->options);
sbi              1902 fs/fat/inode.c 	kfree(sbi);
sbi                64 fs/fat/misc.c  	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi                68 fs/fat/misc.c  	if (!is_fat32(sbi))
sbi                71 fs/fat/misc.c  	bh = sb_bread(sb, sbi->fsinfo_sector);
sbi                84 fs/fat/misc.c  		       sbi->fsinfo_sector);
sbi                86 fs/fat/misc.c  		if (sbi->free_clusters != -1)
sbi                87 fs/fat/misc.c  			fsinfo->free_clusters = cpu_to_le32(sbi->free_clusters);
sbi                88 fs/fat/misc.c  		if (sbi->prev_free != -1)
sbi                89 fs/fat/misc.c  			fsinfo->next_cluster = cpu_to_le32(sbi->prev_free);
sbi               104 fs/fat/misc.c  	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               154 fs/fat/misc.c  	if (new_fclus != (inode->i_blocks >> (sbi->cluster_bits - 9))) {
sbi               157 fs/fat/misc.c  			     (llu)(inode->i_blocks >> (sbi->cluster_bits - 9)));
sbi               160 fs/fat/misc.c  	inode->i_blocks += nr_cluster << (sbi->cluster_bits - 9);
sbi               190 fs/fat/misc.c  static inline int fat_tz_offset(struct msdos_sb_info *sbi)
sbi               192 fs/fat/misc.c  	return (sbi->options.tz_set ?
sbi               193 fs/fat/misc.c  	       -sbi->options.time_offset :
sbi               198 fs/fat/misc.c  void fat_time_fat2unix(struct msdos_sb_info *sbi, struct timespec64 *ts,
sbi               222 fs/fat/misc.c  	second += fat_tz_offset(sbi);
sbi               234 fs/fat/misc.c  void fat_time_unix2fat(struct msdos_sb_info *sbi, struct timespec64 *ts,
sbi               238 fs/fat/misc.c  	time64_to_tm(ts->tv_sec, -fat_tz_offset(sbi), &tm);
sbi               287 fs/fat/misc.c  	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               300 fs/fat/misc.c  		time64_t seconds = now->tv_sec - fat_tz_offset(sbi);
sbi               305 fs/fat/misc.c  		seconds = seconds + fat_tz_offset(sbi) - remainder;
sbi               310 fs/fat/misc.c  		if (sbi->options.isvfat)
sbi               122 fs/fat/namei_msdos.c 	struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb);
sbi               126 fs/fat/namei_msdos.c 	err = msdos_format_name(name, len, msdos_name, &sbi->options);
sbi               131 fs/fat/namei_msdos.c 	if (!err && sbi->options.dotsOK) {
sbi               231 fs/fat/namei_msdos.c 	struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb);
sbi               241 fs/fat/namei_msdos.c 	fat_time_unix2fat(sbi, ts, &time, &date, NULL);
sbi               584 fs/fat/namei_vfat.c 	struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb);
sbi               585 fs/fat/namei_vfat.c 	struct fat_mount_options *opts = &sbi->options;
sbi               603 fs/fat/namei_vfat.c 			   opts->unicode_xlate, opts->utf8, sbi->nls_io);
sbi               611 fs/fat/namei_vfat.c 	err = vfat_create_shortname(dir, sbi->nls_disk, uname, ulen,
sbi               645 fs/fat/namei_vfat.c 	fat_time_unix2fat(sbi, ts, &time, &date, &time_cs);
sbi                25 fs/fat/nfs.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi                30 fs/fat/nfs.c   	head = sbi->dir_hashtable + fat_dir_hash(i_logstart);
sbi                31 fs/fat/nfs.c   	spin_lock(&sbi->dir_hash_lock);
sbi                40 fs/fat/nfs.c   	spin_unlock(&sbi->dir_hash_lock);
sbi               104 fs/fat/nfs.c   	struct msdos_sb_info *sbi = MSDOS_SB(inode->i_sb);
sbi               121 fs/fat/nfs.c   	i_pos = fat_i_pos_read(sbi, inode);
sbi               127 fs/fat/nfs.c   		i_pos = fat_i_pos_read(sbi, parent);
sbi               221 fs/fat/nfs.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               222 fs/fat/nfs.c   	sector_t blknr = fat_clus_to_blknr(sbi, parent_logstart);
sbi               231 fs/fat/nfs.c   	clus_to_match = fat_get_start(sbi, &de[0]);
sbi               232 fs/fat/nfs.c   	search_clus = fat_get_start(sbi, &de[1]);
sbi               268 fs/fat/nfs.c   	struct msdos_sb_info *sbi = MSDOS_SB(sb);
sbi               271 fs/fat/nfs.c   		int parent_logstart = fat_get_start(sbi, de);
sbi               273 fs/fat/nfs.c   		if (!parent_inode && sbi->options.nfs == FAT_NFS_NOSTALE_RO)
sbi               176 fs/freevxfs/vxfs.h static inline u16 fs16_to_cpu(struct vxfs_sb_info *sbi, __fs16 a)
sbi               178 fs/freevxfs/vxfs.h 	if (sbi->byte_order == VXFS_BO_BE)
sbi               184 fs/freevxfs/vxfs.h static inline u32 fs32_to_cpu(struct vxfs_sb_info *sbi, __fs32 a)
sbi               186 fs/freevxfs/vxfs.h 	if (sbi->byte_order == VXFS_BO_BE)
sbi               192 fs/freevxfs/vxfs.h static inline u64 fs64_to_cpu(struct vxfs_sb_info *sbi, __fs64 a)
sbi               194 fs/freevxfs/vxfs.h 	if (sbi->byte_order == VXFS_BO_BE)
sbi                71 fs/freevxfs/vxfs_bmap.c 	struct vxfs_sb_info *sbi = VXFS_SBI(sb);
sbi                73 fs/freevxfs/vxfs_bmap.c 	u32 indsize = fs32_to_cpu(sbi, vip->vii_ext4.ve4_indsize);
sbi                81 fs/freevxfs/vxfs_bmap.c 		if (bn >= 0 && bn < fs32_to_cpu(sbi, d->size))
sbi                82 fs/freevxfs/vxfs_bmap.c 			return (bn + fs32_to_cpu(sbi, d->extent));
sbi                83 fs/freevxfs/vxfs_bmap.c 		bn -= fs32_to_cpu(sbi, d->size);
sbi                92 fs/freevxfs/vxfs_bmap.c 			fs32_to_cpu(sbi, vip->vii_ext4.ve4_indir[0]));
sbi                97 fs/freevxfs/vxfs_bmap.c 		bno = fs32_to_cpu(sbi, indir[(bn / indsize) % (indsize * bn)]) +
sbi               133 fs/freevxfs/vxfs_bmap.c 	struct vxfs_sb_info		*sbi = VXFS_SBI(ip->i_sb);
sbi               149 fs/freevxfs/vxfs_bmap.c 		off = fs64_to_cpu(sbi, typ->vt_hdr) & VXFS_TYPED_OFFSETMASK;
sbi               156 fs/freevxfs/vxfs_bmap.c 		switch ((u_int32_t)(fs64_to_cpu(sbi, typ->vt_hdr) >>
sbi               160 fs/freevxfs/vxfs_bmap.c 					fs32_to_cpu(sbi, typ->vt_block),
sbi               161 fs/freevxfs/vxfs_bmap.c 					fs32_to_cpu(sbi, typ->vt_size),
sbi               167 fs/freevxfs/vxfs_bmap.c 			if ((block - off) >= fs32_to_cpu(sbi, typ->vt_size))
sbi               169 fs/freevxfs/vxfs_bmap.c 			pblock = fs32_to_cpu(sbi, typ->vt_block) + block - off;
sbi               178 fs/freevxfs/vxfs_bmap.c 			       fs64_to_cpu(sbi, typ4->vd4_block),
sbi               179 fs/freevxfs/vxfs_bmap.c 			       fs64_to_cpu(sbi, typ4->vd4_size),
sbi               180 fs/freevxfs/vxfs_bmap.c 			       fs32_to_cpu(sbi, typ4->vd4_dev));
sbi               185 fs/freevxfs/vxfs_bmap.c 				__LINE__, fs64_to_cpu(sbi, typ->vt_hdr));
sbi               213 fs/freevxfs/vxfs_bmap.c 	struct vxfs_sb_info		*sbi = VXFS_SBI(ip->i_sb);
sbi               219 fs/freevxfs/vxfs_bmap.c 		u64			hdr = fs64_to_cpu(sbi, typ->vt_hdr);
sbi               230 fs/freevxfs/vxfs_bmap.c 					fs32_to_cpu(sbi, typ->vt_block),
sbi               231 fs/freevxfs/vxfs_bmap.c 					fs32_to_cpu(sbi, typ->vt_size),
sbi               237 fs/freevxfs/vxfs_bmap.c 			if ((iblock - off) < fs32_to_cpu(sbi, typ->vt_size))
sbi               238 fs/freevxfs/vxfs_bmap.c 				return (fs32_to_cpu(sbi, typ->vt_block) +
sbi               248 fs/freevxfs/vxfs_bmap.c 			       fs64_to_cpu(sbi, typ4->vd4_block),
sbi               249 fs/freevxfs/vxfs_bmap.c 			       fs64_to_cpu(sbi, typ4->vd4_size),
sbi               250 fs/freevxfs/vxfs_bmap.c 			       fs32_to_cpu(sbi, typ4->vd4_dev));
sbi                90 fs/freevxfs/vxfs_dir.h #define VXFS_DIRBLKOV(sbi, dbp)	\
sbi                91 fs/freevxfs/vxfs_dir.h 	((sizeof(short) * fs16_to_cpu(sbi, dbp->d_nhash)) + 4)
sbi               100 fs/freevxfs/vxfs_inode.c static inline void dip2vip_cpy(struct vxfs_sb_info *sbi,
sbi               105 fs/freevxfs/vxfs_inode.c 	vip->vii_mode = fs32_to_cpu(sbi, dip->vdi_mode);
sbi               106 fs/freevxfs/vxfs_inode.c 	vip->vii_nlink = fs32_to_cpu(sbi, dip->vdi_nlink);
sbi               107 fs/freevxfs/vxfs_inode.c 	vip->vii_uid = fs32_to_cpu(sbi, dip->vdi_uid);
sbi               108 fs/freevxfs/vxfs_inode.c 	vip->vii_gid = fs32_to_cpu(sbi, dip->vdi_gid);
sbi               109 fs/freevxfs/vxfs_inode.c 	vip->vii_size = fs64_to_cpu(sbi, dip->vdi_size);
sbi               110 fs/freevxfs/vxfs_inode.c 	vip->vii_atime = fs32_to_cpu(sbi, dip->vdi_atime);
sbi               111 fs/freevxfs/vxfs_inode.c 	vip->vii_autime = fs32_to_cpu(sbi, dip->vdi_autime);
sbi               112 fs/freevxfs/vxfs_inode.c 	vip->vii_mtime = fs32_to_cpu(sbi, dip->vdi_mtime);
sbi               113 fs/freevxfs/vxfs_inode.c 	vip->vii_mutime = fs32_to_cpu(sbi, dip->vdi_mutime);
sbi               114 fs/freevxfs/vxfs_inode.c 	vip->vii_ctime = fs32_to_cpu(sbi, dip->vdi_ctime);
sbi               115 fs/freevxfs/vxfs_inode.c 	vip->vii_cutime = fs32_to_cpu(sbi, dip->vdi_cutime);
sbi               118 fs/freevxfs/vxfs_inode.c 	vip->vii_blocks = fs32_to_cpu(sbi, dip->vdi_blocks);
sbi               119 fs/freevxfs/vxfs_inode.c 	vip->vii_gen = fs32_to_cpu(sbi, dip->vdi_gen);
sbi               122 fs/freevxfs/vxfs_inode.c 		vip->vii_dotdot = fs32_to_cpu(sbi, dip->vdi_dotdot);
sbi               124 fs/freevxfs/vxfs_inode.c 		vip->vii_rdev = fs32_to_cpu(sbi, dip->vdi_rdev);
sbi                89 fs/freevxfs/vxfs_lookup.c 	struct vxfs_sb_info *sbi = VXFS_SBI(ip->i_sb);
sbi               108 fs/freevxfs/vxfs_lookup.c 				int overhead = VXFS_DIRBLKOV(sbi, dbp);
sbi               121 fs/freevxfs/vxfs_lookup.c 			pg_ofs += fs16_to_cpu(sbi, de->d_reclen);
sbi               122 fs/freevxfs/vxfs_lookup.c 			pos += fs16_to_cpu(sbi, de->d_reclen);
sbi               126 fs/freevxfs/vxfs_lookup.c 			if (namelen != fs16_to_cpu(sbi, de->d_namelen))
sbi               221 fs/freevxfs/vxfs_lookup.c 	struct vxfs_sb_info	*sbi = VXFS_SBI(sbp);
sbi               259 fs/freevxfs/vxfs_lookup.c 				int overhead = VXFS_DIRBLKOV(sbi, dbp);
sbi               272 fs/freevxfs/vxfs_lookup.c 			pg_ofs += fs16_to_cpu(sbi, de->d_reclen);
sbi               273 fs/freevxfs/vxfs_lookup.c 			pos += fs16_to_cpu(sbi, de->d_reclen);
sbi               278 fs/freevxfs/vxfs_lookup.c 					fs16_to_cpu(sbi, de->d_namelen),
sbi               279 fs/freevxfs/vxfs_lookup.c 					fs32_to_cpu(sbi, de->d_ino),
sbi               283 fs/freevxfs/vxfs_lookup.c 				pos -= fs16_to_cpu(sbi, de->d_reclen);
sbi                56 fs/hfs/super.c 	struct hfs_sb_info *sbi;
sbi                59 fs/hfs/super.c 	sbi = container_of(work, struct hfs_sb_info, mdb_work.work);
sbi                60 fs/hfs/super.c 	sb = sbi->sb;
sbi                62 fs/hfs/super.c 	spin_lock(&sbi->work_lock);
sbi                63 fs/hfs/super.c 	sbi->work_queued = 0;
sbi                64 fs/hfs/super.c 	spin_unlock(&sbi->work_lock);
sbi                71 fs/hfs/super.c 	struct hfs_sb_info *sbi = HFS_SB(sb);
sbi                77 fs/hfs/super.c 	spin_lock(&sbi->work_lock);
sbi                78 fs/hfs/super.c 	if (!sbi->work_queued) {
sbi                80 fs/hfs/super.c 		queue_delayed_work(system_long_wq, &sbi->mdb_work, delay);
sbi                81 fs/hfs/super.c 		sbi->work_queued = 1;
sbi                83 fs/hfs/super.c 	spin_unlock(&sbi->work_lock);
sbi               136 fs/hfs/super.c 	struct hfs_sb_info *sbi = HFS_SB(root->d_sb);
sbi               138 fs/hfs/super.c 	if (sbi->s_creator != cpu_to_be32(0x3f3f3f3f))
sbi               139 fs/hfs/super.c 		seq_show_option_n(seq, "creator", (char *)&sbi->s_creator, 4);
sbi               140 fs/hfs/super.c 	if (sbi->s_type != cpu_to_be32(0x3f3f3f3f))
sbi               141 fs/hfs/super.c 		seq_show_option_n(seq, "type", (char *)&sbi->s_type, 4);
sbi               143 fs/hfs/super.c 			from_kuid_munged(&init_user_ns, sbi->s_uid),
sbi               144 fs/hfs/super.c 			from_kgid_munged(&init_user_ns, sbi->s_gid));
sbi               145 fs/hfs/super.c 	if (sbi->s_file_umask != 0133)
sbi               146 fs/hfs/super.c 		seq_printf(seq, ",file_umask=%o", sbi->s_file_umask);
sbi               147 fs/hfs/super.c 	if (sbi->s_dir_umask != 0022)
sbi               148 fs/hfs/super.c 		seq_printf(seq, ",dir_umask=%o", sbi->s_dir_umask);
sbi               149 fs/hfs/super.c 	if (sbi->part >= 0)
sbi               150 fs/hfs/super.c 		seq_printf(seq, ",part=%u", sbi->part);
sbi               151 fs/hfs/super.c 	if (sbi->session >= 0)
sbi               152 fs/hfs/super.c 		seq_printf(seq, ",session=%u", sbi->session);
sbi               153 fs/hfs/super.c 	if (sbi->nls_disk)
sbi               154 fs/hfs/super.c 		seq_printf(seq, ",codepage=%s", sbi->nls_disk->charset);
sbi               155 fs/hfs/super.c 	if (sbi->nls_io)
sbi               156 fs/hfs/super.c 		seq_printf(seq, ",iocharset=%s", sbi->nls_io->charset);
sbi               157 fs/hfs/super.c 	if (sbi->s_quiet)
sbi               381 fs/hfs/super.c 	struct hfs_sb_info *sbi;
sbi               387 fs/hfs/super.c 	sbi = kzalloc(sizeof(struct hfs_sb_info), GFP_KERNEL);
sbi               388 fs/hfs/super.c 	if (!sbi)
sbi               391 fs/hfs/super.c 	sbi->sb = sb;
sbi               392 fs/hfs/super.c 	sb->s_fs_info = sbi;
sbi               393 fs/hfs/super.c 	spin_lock_init(&sbi->work_lock);
sbi               394 fs/hfs/super.c 	INIT_DELAYED_WORK(&sbi->mdb_work, flush_mdb);
sbi               397 fs/hfs/super.c 	if (!parse_options((char *)data, sbi)) {
sbi               405 fs/hfs/super.c 	mutex_init(&sbi->bitmap_lock);
sbi                22 fs/hfsplus/bitmap.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi                35 fs/hfsplus/bitmap.c 	mutex_lock(&sbi->alloc_mutex);
sbi                36 fs/hfsplus/bitmap.c 	mapping = sbi->alloc_file->i_mapping;
sbi               156 fs/hfsplus/bitmap.c 	sbi->free_blocks -= *max;
sbi               160 fs/hfsplus/bitmap.c 	mutex_unlock(&sbi->alloc_mutex);
sbi               166 fs/hfsplus/bitmap.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               179 fs/hfsplus/bitmap.c 	if ((offset + count) > sbi->total_blocks)
sbi               182 fs/hfsplus/bitmap.c 	mutex_lock(&sbi->alloc_mutex);
sbi               183 fs/hfsplus/bitmap.c 	mapping = sbi->alloc_file->i_mapping;
sbi               235 fs/hfsplus/bitmap.c 	sbi->free_blocks += len;
sbi               237 fs/hfsplus/bitmap.c 	mutex_unlock(&sbi->alloc_mutex);
sbi               243 fs/hfsplus/bitmap.c 	mutex_unlock(&sbi->alloc_mutex);
sbi               660 fs/hfsplus/bnode.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               661 fs/hfsplus/bnode.c 	const u32 volume_attr = be32_to_cpu(sbi->s_vhdr->attributes);
sbi               108 fs/hfsplus/catalog.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb);
sbi               116 fs/hfsplus/catalog.c 		if (test_bit(HFSPLUS_SB_HFSX, &sbi->flags))
sbi               125 fs/hfsplus/catalog.c 		if (inode == sbi->hidden_dir)
sbi               151 fs/hfsplus/catalog.c 					cpu_to_be32(sbi->type);
sbi               153 fs/hfsplus/catalog.c 					cpu_to_be32(sbi->creator);
sbi               168 fs/hfsplus/catalog.c 				HFSPLUS_I(sbi->hidden_dir)->create_date;
sbi               225 fs/hfsplus/catalog.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               227 fs/hfsplus/catalog.c 	if (test_bit(HFSPLUS_SB_HFSX, &sbi->flags)) {
sbi               238 fs/hfsplus/catalog.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               240 fs/hfsplus/catalog.c 	if (test_bit(HFSPLUS_SB_HFSX, &sbi->flags)) {
sbi               303 fs/hfsplus/dir.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dst_dir->i_sb);
sbi               316 fs/hfsplus/dir.c 	mutex_lock(&sbi->vh_mutex);
sbi               325 fs/hfsplus/dir.c 						 sbi->hidden_dir, &str);
sbi               332 fs/hfsplus/dir.c 		cnid = sbi->next_cnid++;
sbi               339 fs/hfsplus/dir.c 		sbi->file_count++;
sbi               341 fs/hfsplus/dir.c 	cnid = sbi->next_cnid++;
sbi               351 fs/hfsplus/dir.c 	sbi->file_count++;
sbi               354 fs/hfsplus/dir.c 	mutex_unlock(&sbi->vh_mutex);
sbi               360 fs/hfsplus/dir.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               370 fs/hfsplus/dir.c 	mutex_lock(&sbi->vh_mutex);
sbi               378 fs/hfsplus/dir.c 					 sbi->hidden_dir, &str);
sbi               395 fs/hfsplus/dir.c 			sbi->file_count--;
sbi               398 fs/hfsplus/dir.c 							 sbi->hidden_dir,
sbi               407 fs/hfsplus/dir.c 		sbi->file_count--;
sbi               411 fs/hfsplus/dir.c 	mutex_unlock(&sbi->vh_mutex);
sbi               417 fs/hfsplus/dir.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               424 fs/hfsplus/dir.c 	mutex_lock(&sbi->vh_mutex);
sbi               433 fs/hfsplus/dir.c 	mutex_unlock(&sbi->vh_mutex);
sbi               440 fs/hfsplus/dir.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               444 fs/hfsplus/dir.c 	mutex_lock(&sbi->vh_mutex);
sbi               475 fs/hfsplus/dir.c 	mutex_unlock(&sbi->vh_mutex);
sbi               482 fs/hfsplus/dir.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(dir->i_sb);
sbi               486 fs/hfsplus/dir.c 	mutex_lock(&sbi->vh_mutex);
sbi               516 fs/hfsplus/dir.c 	mutex_unlock(&sbi->vh_mutex);
sbi               229 fs/hfsplus/extents.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               237 fs/hfsplus/extents.c 	ablock = iblock >> sbi->fs_shift;
sbi               281 fs/hfsplus/extents.c 	mask = (1 << sbi->fs_shift) - 1;
sbi               282 fs/hfsplus/extents.c 	sector = ((sector_t)dblock << sbi->fs_shift) +
sbi               283 fs/hfsplus/extents.c 		  sbi->blockoffset + (iblock & mask);
sbi               443 fs/hfsplus/extents.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               448 fs/hfsplus/extents.c 	if (sbi->alloc_file->i_size * 8 <
sbi               449 fs/hfsplus/extents.c 	    sbi->total_blocks - sbi->free_blocks + 8) {
sbi               452 fs/hfsplus/extents.c 		       sbi->alloc_file->i_size * 8,
sbi               453 fs/hfsplus/extents.c 		       sbi->total_blocks, sbi->free_blocks);
sbi               468 fs/hfsplus/extents.c 	start = hfsplus_block_allocate(sb, sbi->total_blocks, goal, &len);
sbi               469 fs/hfsplus/extents.c 	if (start >= sbi->total_blocks) {
sbi               502 fs/hfsplus/hfsplus_fs.h int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi);
sbi               184 fs/hfsplus/inode.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb);
sbi               191 fs/hfsplus/inode.c 		inode->i_uid = sbi->uid;
sbi               195 fs/hfsplus/inode.c 		inode->i_gid = sbi->gid;
sbi               198 fs/hfsplus/inode.c 		mode = mode ? (mode & S_IALLUGO) : (S_IRWXUGO & ~(sbi->umask));
sbi               201 fs/hfsplus/inode.c 		mode = S_IFREG | ((S_IRUGO|S_IWUGO) & ~(sbi->umask));
sbi               298 fs/hfsplus/inode.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb);
sbi               315 fs/hfsplus/inode.c 		error = filemap_write_and_wait(sbi->cat_tree->inode->i_mapping);
sbi               319 fs/hfsplus/inode.c 			filemap_write_and_wait(sbi->ext_tree->inode->i_mapping);
sbi               325 fs/hfsplus/inode.c 		if (sbi->attr_tree) {
sbi               328 fs/hfsplus/inode.c 					    sbi->attr_tree->inode->i_mapping);
sbi               337 fs/hfsplus/inode.c 		error2 = filemap_write_and_wait(sbi->alloc_file->i_mapping);
sbi               342 fs/hfsplus/inode.c 	if (!test_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags))
sbi               371 fs/hfsplus/inode.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               378 fs/hfsplus/inode.c 	inode->i_ino = sbi->next_cnid++;
sbi               403 fs/hfsplus/inode.c 		sbi->folder_count++;
sbi               407 fs/hfsplus/inode.c 		sbi->file_count++;
sbi               411 fs/hfsplus/inode.c 		hip->clump_blocks = sbi->data_clump_blocks;
sbi               413 fs/hfsplus/inode.c 		sbi->file_count++;
sbi               419 fs/hfsplus/inode.c 		sbi->file_count++;
sbi               452 fs/hfsplus/inode.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               471 fs/hfsplus/inode.c 		be32_to_cpu(fork->clump_size) >> sbi->alloc_blksz_shift;
sbi               474 fs/hfsplus/inode.c 			sbi->rsrc_clump_blocks :
sbi               475 fs/hfsplus/inode.c 			sbi->data_clump_blocks;
sbi                31 fs/hfsplus/ioctl.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb);
sbi                32 fs/hfsplus/ioctl.c 	struct hfsplus_vh *vh = sbi->s_vhdr;
sbi                33 fs/hfsplus/ioctl.c 	struct hfsplus_vh *bvh = sbi->s_backup_vhdr;
sbi                39 fs/hfsplus/ioctl.c 	mutex_lock(&sbi->vh_mutex);
sbi                56 fs/hfsplus/ioctl.c 	mutex_unlock(&sbi->vh_mutex);
sbi               100 fs/hfsplus/options.c int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi)
sbi               116 fs/hfsplus/options.c 			if (match_fourchar(&args[0], &sbi->creator)) {
sbi               122 fs/hfsplus/options.c 			if (match_fourchar(&args[0], &sbi->type)) {
sbi               132 fs/hfsplus/options.c 			sbi->umask = (umode_t)tmp;
sbi               139 fs/hfsplus/options.c 			sbi->uid = make_kuid(current_user_ns(), (uid_t)tmp);
sbi               140 fs/hfsplus/options.c 			if (!uid_valid(sbi->uid)) {
sbi               150 fs/hfsplus/options.c 			sbi->gid = make_kgid(current_user_ns(), (gid_t)tmp);
sbi               151 fs/hfsplus/options.c 			if (!gid_valid(sbi->gid)) {
sbi               157 fs/hfsplus/options.c 			if (match_int(&args[0], &sbi->part)) {
sbi               163 fs/hfsplus/options.c 			if (match_int(&args[0], &sbi->session)) {
sbi               169 fs/hfsplus/options.c 			if (sbi->nls) {
sbi               175 fs/hfsplus/options.c 				sbi->nls = load_nls(p);
sbi               176 fs/hfsplus/options.c 			if (!sbi->nls) {
sbi               185 fs/hfsplus/options.c 			clear_bit(HFSPLUS_SB_NODECOMPOSE, &sbi->flags);
sbi               188 fs/hfsplus/options.c 			set_bit(HFSPLUS_SB_NODECOMPOSE, &sbi->flags);
sbi               191 fs/hfsplus/options.c 			clear_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags);
sbi               194 fs/hfsplus/options.c 			set_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags);
sbi               197 fs/hfsplus/options.c 			set_bit(HFSPLUS_SB_FORCE, &sbi->flags);
sbi               205 fs/hfsplus/options.c 	if (!sbi->nls) {
sbi               207 fs/hfsplus/options.c 		sbi->nls = load_nls("utf8");
sbi               208 fs/hfsplus/options.c 		if (!sbi->nls)
sbi               209 fs/hfsplus/options.c 			sbi->nls = load_nls_default();
sbi               210 fs/hfsplus/options.c 		if (!sbi->nls)
sbi               219 fs/hfsplus/options.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(root->d_sb);
sbi               221 fs/hfsplus/options.c 	if (sbi->creator != HFSPLUS_DEF_CR_TYPE)
sbi               222 fs/hfsplus/options.c 		seq_show_option_n(seq, "creator", (char *)&sbi->creator, 4);
sbi               223 fs/hfsplus/options.c 	if (sbi->type != HFSPLUS_DEF_CR_TYPE)
sbi               224 fs/hfsplus/options.c 		seq_show_option_n(seq, "type", (char *)&sbi->type, 4);
sbi               225 fs/hfsplus/options.c 	seq_printf(seq, ",umask=%o,uid=%u,gid=%u", sbi->umask,
sbi               226 fs/hfsplus/options.c 			from_kuid_munged(&init_user_ns, sbi->uid),
sbi               227 fs/hfsplus/options.c 			from_kgid_munged(&init_user_ns, sbi->gid));
sbi               228 fs/hfsplus/options.c 	if (sbi->part >= 0)
sbi               229 fs/hfsplus/options.c 		seq_printf(seq, ",part=%u", sbi->part);
sbi               230 fs/hfsplus/options.c 	if (sbi->session >= 0)
sbi               231 fs/hfsplus/options.c 		seq_printf(seq, ",session=%u", sbi->session);
sbi               232 fs/hfsplus/options.c 	if (sbi->nls)
sbi               233 fs/hfsplus/options.c 		seq_printf(seq, ",nls=%s", sbi->nls->charset);
sbi               234 fs/hfsplus/options.c 	if (test_bit(HFSPLUS_SB_NODECOMPOSE, &sbi->flags))
sbi               236 fs/hfsplus/options.c 	if (test_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags))
sbi                73 fs/hfsplus/part_tbl.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi                81 fs/hfsplus/part_tbl.c 		    (sbi->part < 0 || sbi->part == i)) {
sbi                94 fs/hfsplus/part_tbl.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               102 fs/hfsplus/part_tbl.c 		    (sbi->part < 0 || sbi->part == i)) {
sbi               102 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(inode->i_sb);
sbi               103 fs/hfsplus/super.c 	struct hfsplus_vh *vhdr = sbi->s_vhdr;
sbi               110 fs/hfsplus/super.c 		tree = sbi->ext_tree;
sbi               114 fs/hfsplus/super.c 		tree = sbi->cat_tree;
sbi               124 fs/hfsplus/super.c 		tree = sbi->attr_tree;
sbi               131 fs/hfsplus/super.c 		set_bit(HFSPLUS_SB_WRITEBACKUP, &sbi->flags);
sbi               178 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               179 fs/hfsplus/super.c 	struct hfsplus_vh *vhdr = sbi->s_vhdr;
sbi               196 fs/hfsplus/super.c 	error = filemap_write_and_wait(sbi->cat_tree->inode->i_mapping);
sbi               197 fs/hfsplus/super.c 	error2 = filemap_write_and_wait(sbi->ext_tree->inode->i_mapping);
sbi               200 fs/hfsplus/super.c 	if (sbi->attr_tree) {
sbi               202 fs/hfsplus/super.c 		    filemap_write_and_wait(sbi->attr_tree->inode->i_mapping);
sbi               206 fs/hfsplus/super.c 	error2 = filemap_write_and_wait(sbi->alloc_file->i_mapping);
sbi               210 fs/hfsplus/super.c 	mutex_lock(&sbi->vh_mutex);
sbi               211 fs/hfsplus/super.c 	mutex_lock(&sbi->alloc_mutex);
sbi               212 fs/hfsplus/super.c 	vhdr->free_blocks = cpu_to_be32(sbi->free_blocks);
sbi               213 fs/hfsplus/super.c 	vhdr->next_cnid = cpu_to_be32(sbi->next_cnid);
sbi               214 fs/hfsplus/super.c 	vhdr->folder_count = cpu_to_be32(sbi->folder_count);
sbi               215 fs/hfsplus/super.c 	vhdr->file_count = cpu_to_be32(sbi->file_count);
sbi               217 fs/hfsplus/super.c 	if (test_and_clear_bit(HFSPLUS_SB_WRITEBACKUP, &sbi->flags)) {
sbi               218 fs/hfsplus/super.c 		memcpy(sbi->s_backup_vhdr, sbi->s_vhdr, sizeof(*sbi->s_vhdr));
sbi               223 fs/hfsplus/super.c 				   sbi->part_start + HFSPLUS_VOLHEAD_SECTOR,
sbi               224 fs/hfsplus/super.c 				   sbi->s_vhdr_buf, NULL, REQ_OP_WRITE,
sbi               232 fs/hfsplus/super.c 				  sbi->part_start + sbi->sect_count - 2,
sbi               233 fs/hfsplus/super.c 				  sbi->s_backup_vhdr_buf, NULL, REQ_OP_WRITE,
sbi               238 fs/hfsplus/super.c 	mutex_unlock(&sbi->alloc_mutex);
sbi               239 fs/hfsplus/super.c 	mutex_unlock(&sbi->vh_mutex);
sbi               241 fs/hfsplus/super.c 	if (!test_bit(HFSPLUS_SB_NOBARRIER, &sbi->flags))
sbi               250 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi;
sbi               252 fs/hfsplus/super.c 	sbi = container_of(work, struct hfsplus_sb_info, sync_work.work);
sbi               254 fs/hfsplus/super.c 	spin_lock(&sbi->work_lock);
sbi               255 fs/hfsplus/super.c 	sbi->work_queued = 0;
sbi               256 fs/hfsplus/super.c 	spin_unlock(&sbi->work_lock);
sbi               258 fs/hfsplus/super.c 	err = hfsplus_sync_fs(sbi->alloc_file->i_sb, 1);
sbi               265 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               271 fs/hfsplus/super.c 	spin_lock(&sbi->work_lock);
sbi               272 fs/hfsplus/super.c 	if (!sbi->work_queued) {
sbi               274 fs/hfsplus/super.c 		queue_delayed_work(system_long_wq, &sbi->sync_work, delay);
sbi               275 fs/hfsplus/super.c 		sbi->work_queued = 1;
sbi               277 fs/hfsplus/super.c 	spin_unlock(&sbi->work_lock);
sbi               282 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               286 fs/hfsplus/super.c 	cancel_delayed_work_sync(&sbi->sync_work);
sbi               288 fs/hfsplus/super.c 	if (!sb_rdonly(sb) && sbi->s_vhdr) {
sbi               289 fs/hfsplus/super.c 		struct hfsplus_vh *vhdr = sbi->s_vhdr;
sbi               298 fs/hfsplus/super.c 	hfs_btree_close(sbi->attr_tree);
sbi               299 fs/hfsplus/super.c 	hfs_btree_close(sbi->cat_tree);
sbi               300 fs/hfsplus/super.c 	hfs_btree_close(sbi->ext_tree);
sbi               301 fs/hfsplus/super.c 	iput(sbi->alloc_file);
sbi               302 fs/hfsplus/super.c 	iput(sbi->hidden_dir);
sbi               303 fs/hfsplus/super.c 	kfree(sbi->s_vhdr_buf);
sbi               304 fs/hfsplus/super.c 	kfree(sbi->s_backup_vhdr_buf);
sbi               305 fs/hfsplus/super.c 	unload_nls(sbi->nls);
sbi               313 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               318 fs/hfsplus/super.c 	buf->f_blocks = sbi->total_blocks << sbi->fs_shift;
sbi               319 fs/hfsplus/super.c 	buf->f_bfree = sbi->free_blocks << sbi->fs_shift;
sbi               322 fs/hfsplus/super.c 	buf->f_ffree = 0xFFFFFFFF - sbi->next_cnid;
sbi               378 fs/hfsplus/super.c 	struct hfsplus_sb_info *sbi;
sbi               388 fs/hfsplus/super.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               389 fs/hfsplus/super.c 	if (!sbi)
sbi               392 fs/hfsplus/super.c 	sb->s_fs_info = sbi;
sbi               393 fs/hfsplus/super.c 	mutex_init(&sbi->alloc_mutex);
sbi               394 fs/hfsplus/super.c 	mutex_init(&sbi->vh_mutex);
sbi               395 fs/hfsplus/super.c 	spin_lock_init(&sbi->work_lock);
sbi               396 fs/hfsplus/super.c 	INIT_DELAYED_WORK(&sbi->sync_work, delayed_sync_fs);
sbi               397 fs/hfsplus/super.c 	hfsplus_fill_defaults(sbi);
sbi               400 fs/hfsplus/super.c 	if (!hfsplus_parse_options(data, sbi)) {
sbi               406 fs/hfsplus/super.c 	nls = sbi->nls;
sbi               407 fs/hfsplus/super.c 	sbi->nls = load_nls("utf8");
sbi               408 fs/hfsplus/super.c 	if (!sbi->nls) {
sbi               419 fs/hfsplus/super.c 	vhdr = sbi->s_vhdr;
sbi               428 fs/hfsplus/super.c 	sbi->total_blocks = be32_to_cpu(vhdr->total_blocks);
sbi               429 fs/hfsplus/super.c 	sbi->free_blocks = be32_to_cpu(vhdr->free_blocks);
sbi               430 fs/hfsplus/super.c 	sbi->next_cnid = be32_to_cpu(vhdr->next_cnid);
sbi               431 fs/hfsplus/super.c 	sbi->file_count = be32_to_cpu(vhdr->file_count);
sbi               432 fs/hfsplus/super.c 	sbi->folder_count = be32_to_cpu(vhdr->folder_count);
sbi               433 fs/hfsplus/super.c 	sbi->data_clump_blocks =
sbi               434 fs/hfsplus/super.c 		be32_to_cpu(vhdr->data_clump_sz) >> sbi->alloc_blksz_shift;
sbi               435 fs/hfsplus/super.c 	if (!sbi->data_clump_blocks)
sbi               436 fs/hfsplus/super.c 		sbi->data_clump_blocks = 1;
sbi               437 fs/hfsplus/super.c 	sbi->rsrc_clump_blocks =
sbi               438 fs/hfsplus/super.c 		be32_to_cpu(vhdr->rsrc_clump_sz) >> sbi->alloc_blksz_shift;
sbi               439 fs/hfsplus/super.c 	if (!sbi->rsrc_clump_blocks)
sbi               440 fs/hfsplus/super.c 		sbi->rsrc_clump_blocks = 1;
sbi               443 fs/hfsplus/super.c 	last_fs_block = sbi->total_blocks - 1;
sbi               444 fs/hfsplus/super.c 	last_fs_page = (last_fs_block << sbi->alloc_blksz_shift) >>
sbi               447 fs/hfsplus/super.c 	if ((last_fs_block > (sector_t)(~0ULL) >> (sbi->alloc_blksz_shift - 9)) ||
sbi               460 fs/hfsplus/super.c 	} else if (test_and_clear_bit(HFSPLUS_SB_FORCE, &sbi->flags)) {
sbi               474 fs/hfsplus/super.c 	sbi->ext_tree = hfs_btree_open(sb, HFSPLUS_EXT_CNID);
sbi               475 fs/hfsplus/super.c 	if (!sbi->ext_tree) {
sbi               479 fs/hfsplus/super.c 	sbi->cat_tree = hfs_btree_open(sb, HFSPLUS_CAT_CNID);
sbi               480 fs/hfsplus/super.c 	if (!sbi->cat_tree) {
sbi               484 fs/hfsplus/super.c 	atomic_set(&sbi->attr_tree_state, HFSPLUS_EMPTY_ATTR_TREE);
sbi               486 fs/hfsplus/super.c 		sbi->attr_tree = hfs_btree_open(sb, HFSPLUS_ATTR_CNID);
sbi               487 fs/hfsplus/super.c 		if (!sbi->attr_tree) {
sbi               491 fs/hfsplus/super.c 		atomic_set(&sbi->attr_tree_state, HFSPLUS_VALID_ATTR_TREE);
sbi               501 fs/hfsplus/super.c 	sbi->alloc_file = inode;
sbi               520 fs/hfsplus/super.c 	err = hfs_find_init(sbi->cat_tree, &fd);
sbi               537 fs/hfsplus/super.c 		sbi->hidden_dir = inode;
sbi               553 fs/hfsplus/super.c 		if (!sbi->hidden_dir) {
sbi               554 fs/hfsplus/super.c 			mutex_lock(&sbi->vh_mutex);
sbi               555 fs/hfsplus/super.c 			sbi->hidden_dir = hfsplus_new_inode(sb, root, S_IFDIR);
sbi               556 fs/hfsplus/super.c 			if (!sbi->hidden_dir) {
sbi               557 fs/hfsplus/super.c 				mutex_unlock(&sbi->vh_mutex);
sbi               561 fs/hfsplus/super.c 			err = hfsplus_create_cat(sbi->hidden_dir->i_ino, root,
sbi               562 fs/hfsplus/super.c 						 &str, sbi->hidden_dir);
sbi               564 fs/hfsplus/super.c 				mutex_unlock(&sbi->vh_mutex);
sbi               568 fs/hfsplus/super.c 			err = hfsplus_init_security(sbi->hidden_dir,
sbi               577 fs/hfsplus/super.c 				hfsplus_delete_cat(sbi->hidden_dir->i_ino,
sbi               579 fs/hfsplus/super.c 				mutex_unlock(&sbi->vh_mutex);
sbi               583 fs/hfsplus/super.c 			mutex_unlock(&sbi->vh_mutex);
sbi               584 fs/hfsplus/super.c 			hfsplus_mark_inode_dirty(sbi->hidden_dir,
sbi               589 fs/hfsplus/super.c 	unload_nls(sbi->nls);
sbi               590 fs/hfsplus/super.c 	sbi->nls = nls;
sbi               594 fs/hfsplus/super.c 	cancel_delayed_work_sync(&sbi->sync_work);
sbi               595 fs/hfsplus/super.c 	iput(sbi->hidden_dir);
sbi               600 fs/hfsplus/super.c 	iput(sbi->alloc_file);
sbi               602 fs/hfsplus/super.c 	hfs_btree_close(sbi->attr_tree);
sbi               604 fs/hfsplus/super.c 	hfs_btree_close(sbi->cat_tree);
sbi               606 fs/hfsplus/super.c 	hfs_btree_close(sbi->ext_tree);
sbi               608 fs/hfsplus/super.c 	kfree(sbi->s_vhdr_buf);
sbi               609 fs/hfsplus/super.c 	kfree(sbi->s_backup_vhdr_buf);
sbi               611 fs/hfsplus/super.c 	unload_nls(sbi->nls);
sbi               613 fs/hfsplus/super.c 	kfree(sbi);
sbi               162 fs/hfsplus/wrapper.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               177 fs/hfsplus/wrapper.c 	sbi->s_vhdr_buf = kmalloc(hfsplus_min_io_size(sb), GFP_KERNEL);
sbi               178 fs/hfsplus/wrapper.c 	if (!sbi->s_vhdr_buf)
sbi               180 fs/hfsplus/wrapper.c 	sbi->s_backup_vhdr_buf = kmalloc(hfsplus_min_io_size(sb), GFP_KERNEL);
sbi               181 fs/hfsplus/wrapper.c 	if (!sbi->s_backup_vhdr_buf)
sbi               186 fs/hfsplus/wrapper.c 				   sbi->s_vhdr_buf, (void **)&sbi->s_vhdr,
sbi               192 fs/hfsplus/wrapper.c 	switch (sbi->s_vhdr->signature) {
sbi               194 fs/hfsplus/wrapper.c 		set_bit(HFSPLUS_SB_HFSX, &sbi->flags);
sbi               199 fs/hfsplus/wrapper.c 		if (!hfsplus_read_mdb(sbi->s_vhdr, &wd))
sbi               218 fs/hfsplus/wrapper.c 				   sbi->s_backup_vhdr_buf,
sbi               219 fs/hfsplus/wrapper.c 				   (void **)&sbi->s_backup_vhdr, REQ_OP_READ,
sbi               225 fs/hfsplus/wrapper.c 	if (sbi->s_backup_vhdr->signature != sbi->s_vhdr->signature) {
sbi               230 fs/hfsplus/wrapper.c 	blocksize = be32_to_cpu(sbi->s_vhdr->blocksize);
sbi               237 fs/hfsplus/wrapper.c 	sbi->alloc_blksz = blocksize;
sbi               238 fs/hfsplus/wrapper.c 	sbi->alloc_blksz_shift = ilog2(blocksize);
sbi               239 fs/hfsplus/wrapper.c 	blocksize = min_t(u32, sbi->alloc_blksz, PAGE_SIZE);
sbi               252 fs/hfsplus/wrapper.c 	sbi->blockoffset =
sbi               254 fs/hfsplus/wrapper.c 	sbi->part_start = part_start;
sbi               255 fs/hfsplus/wrapper.c 	sbi->sect_count = part_size;
sbi               256 fs/hfsplus/wrapper.c 	sbi->fs_shift = sbi->alloc_blksz_shift - sb->s_blocksize_bits;
sbi               260 fs/hfsplus/wrapper.c 	kfree(sbi->s_backup_vhdr_buf);
sbi               262 fs/hfsplus/wrapper.c 	kfree(sbi->s_vhdr_buf);
sbi               124 fs/hfsplus/xattr.c 	struct hfsplus_sb_info *sbi = HFSPLUS_SB(sb);
sbi               138 fs/hfsplus/xattr.c 	switch (atomic_read(&sbi->attr_tree_state)) {
sbi               140 fs/hfsplus/xattr.c 		if (old_state != atomic_cmpxchg(&sbi->attr_tree_state,
sbi               181 fs/hfsplus/xattr.c 						    sbi->sect_count,
sbi               185 fs/hfsplus/xattr.c 	hip->clump_blocks = clump_size >> sbi->alloc_blksz_shift;
sbi               188 fs/hfsplus/xattr.c 	if (sbi->free_blocks <= (hip->clump_blocks << 1)) {
sbi               200 fs/hfsplus/xattr.c 			(loff_t)hip->alloc_blocks << sbi->alloc_blksz_shift;
sbi               201 fs/hfsplus/xattr.c 		hip->fs_blocks = hip->alloc_blocks << sbi->fs_shift;
sbi               238 fs/hfsplus/xattr.c 	sbi->attr_tree = hfs_btree_open(sb, HFSPLUS_ATTR_CNID);
sbi               239 fs/hfsplus/xattr.c 	if (!sbi->attr_tree)
sbi               249 fs/hfsplus/xattr.c 		atomic_set(&sbi->attr_tree_state, HFSPLUS_VALID_ATTR_TREE);
sbi               251 fs/hfsplus/xattr.c 		atomic_set(&sbi->attr_tree_state, HFSPLUS_EMPTY_ATTR_TREE);
sbi               253 fs/hfsplus/xattr.c 		atomic_set(&sbi->attr_tree_state, HFSPLUS_FAILED_ATTR_TREE);
sbi                14 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                15 fs/hpfs/alloc.c 	if (sbi->sb_n_free != (unsigned)-1) {
sbi                16 fs/hpfs/alloc.c 		if (unlikely(!sbi->sb_n_free)) {
sbi                18 fs/hpfs/alloc.c 			sbi->sb_n_free = -1;
sbi                21 fs/hpfs/alloc.c 		sbi->sb_n_free--;
sbi                27 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                28 fs/hpfs/alloc.c 	if (sbi->sb_n_free != (unsigned)-1) {
sbi                29 fs/hpfs/alloc.c 		if (unlikely(sbi->sb_n_free >= sbi->sb_fs_size)) {
sbi                31 fs/hpfs/alloc.c 			sbi->sb_n_free = -1;
sbi                34 fs/hpfs/alloc.c 		sbi->sb_n_free++;
sbi                40 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                41 fs/hpfs/alloc.c 	if (sbi->sb_n_free_dnodes != (unsigned)-1) {
sbi                42 fs/hpfs/alloc.c 		if (unlikely(!sbi->sb_n_free_dnodes)) {
sbi                44 fs/hpfs/alloc.c 			sbi->sb_n_free_dnodes = -1;
sbi                47 fs/hpfs/alloc.c 		sbi->sb_n_free_dnodes--;
sbi                53 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                54 fs/hpfs/alloc.c 	if (sbi->sb_n_free_dnodes != (unsigned)-1) {
sbi                55 fs/hpfs/alloc.c 		if (unlikely(sbi->sb_n_free_dnodes >= sbi->sb_dirband_size / 4)) {
sbi                57 fs/hpfs/alloc.c 			sbi->sb_n_free_dnodes = -1;
sbi                60 fs/hpfs/alloc.c 		sbi->sb_n_free_dnodes++;
sbi               208 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               215 fs/hpfs/alloc.c 	n_bmps = (sbi->sb_fs_size + 0x4000 - 1) >> 14;
sbi               216 fs/hpfs/alloc.c 	if (near && near < sbi->sb_fs_size) {
sbi               228 fs/hpfs/alloc.c 	if (!f_p) if (forward > sbi->sb_max_fwd_alloc) forward = sbi->sb_max_fwd_alloc;
sbi               232 fs/hpfs/alloc.c 			sbi->sb_c_bitmap = near_bmp+i;
sbi               237 fs/hpfs/alloc.c 				sbi->sb_c_bitmap = near_bmp-i-1;
sbi               242 fs/hpfs/alloc.c 				sbi->sb_c_bitmap = near_bmp+i-n_bmps;
sbi               246 fs/hpfs/alloc.c 		if (i == 1 && sbi->sb_c_bitmap != -1 && ((sec = alloc_in_bmp(s, (sbi->sb_c_bitmap) << 14, n, forward)))) {
sbi               252 fs/hpfs/alloc.c 			sbi->sb_max_fwd_alloc = forward * 3 / 4;
sbi               281 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               282 fs/hpfs/alloc.c 	if (nr < sbi->sb_dirband_start)
sbi               283 fs/hpfs/alloc.c 		nr = sbi->sb_dirband_start;
sbi               284 fs/hpfs/alloc.c 	if (nr >= sbi->sb_dirband_start + sbi->sb_dirband_size)
sbi               285 fs/hpfs/alloc.c 		nr = sbi->sb_dirband_start + sbi->sb_dirband_size - 4;
sbi               286 fs/hpfs/alloc.c 	nr -= sbi->sb_dirband_start;
sbi               291 fs/hpfs/alloc.c 	return ((sec & 0x3fff) << 2) + sbi->sb_dirband_start;
sbi               319 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               326 fs/hpfs/alloc.c 	sbi->sb_max_fwd_alloc += n > 0xffff ? 0xffff : n;
sbi               327 fs/hpfs/alloc.c 	if (sbi->sb_max_fwd_alloc > 0xffffff) sbi->sb_max_fwd_alloc = 0xffffff;
sbi               528 fs/hpfs/alloc.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               534 fs/hpfs/alloc.c 	if (!end || end > sbi->sb_fs_size)
sbi               535 fs/hpfs/alloc.c 		end = sbi->sb_fs_size;
sbi               536 fs/hpfs/alloc.c 	if (start >= sbi->sb_fs_size)
sbi               540 fs/hpfs/alloc.c 	if (start < sbi->sb_dirband_start + sbi->sb_dirband_size && end > sbi->sb_dirband_start) {
sbi               552 fs/hpfs/alloc.c 			err = do_trim(s, sbi->sb_dirband_start + idx * 4, len * 4, start, end, minlen, result);
sbi                17 fs/hpfs/buffer.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                18 fs/hpfs/buffer.c 	for (i = 0; unlikely(i < sbi->n_hotfixes); i++) {
sbi                19 fs/hpfs/buffer.c 		if (sbi->hotfix_from[i] == sec) {
sbi                20 fs/hpfs/buffer.c 			return sbi->hotfix_to[i];
sbi                29 fs/hpfs/buffer.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi                30 fs/hpfs/buffer.c 	for (i = 0; unlikely(i < sbi->n_hotfixes); i++) {
sbi                31 fs/hpfs/buffer.c 		if (sbi->hotfix_from[i] >= sec && sbi->hotfix_from[i] < sec + n) {
sbi                32 fs/hpfs/buffer.c 			n = sbi->hotfix_from[i] - sec;
sbi               365 fs/hpfs/hpfs_fn.h 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               366 fs/hpfs/hpfs_fn.h 	mutex_lock(&sbi->hpfs_mutex);
sbi               371 fs/hpfs/hpfs_fn.h 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               372 fs/hpfs/hpfs_fn.h 	mutex_unlock(&sbi->hpfs_mutex);
sbi               377 fs/hpfs/hpfs_fn.h 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               378 fs/hpfs/hpfs_fn.h 	WARN_ON(!mutex_is_locked(&sbi->hpfs_mutex));
sbi               113 fs/hpfs/super.c static void free_sbi(struct hpfs_sb_info *sbi)
sbi               115 fs/hpfs/super.c 	kfree(sbi->sb_cp_table);
sbi               116 fs/hpfs/super.c 	kfree(sbi->sb_bmp_dir);
sbi               117 fs/hpfs/super.c 	kfree(sbi);
sbi               167 fs/hpfs/super.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               168 fs/hpfs/super.c 	if (sbi->sb_n_free_dnodes == (unsigned)-1) {
sbi               169 fs/hpfs/super.c 		unsigned c = hpfs_count_one_bitmap(s, sbi->sb_dmap);
sbi               172 fs/hpfs/super.c 		sbi->sb_n_free_dnodes = c;
sbi               174 fs/hpfs/super.c 	return sbi->sb_n_free_dnodes;
sbi               180 fs/hpfs/super.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               185 fs/hpfs/super.c 	if (sbi->sb_n_free == (unsigned)-1)
sbi               186 fs/hpfs/super.c 		sbi->sb_n_free = count_bitmaps(s);
sbi               190 fs/hpfs/super.c 	buf->f_blocks = sbi->sb_fs_size;
sbi               191 fs/hpfs/super.c 	buf->f_bfree = sbi->sb_n_free;
sbi               192 fs/hpfs/super.c 	buf->f_bavail = sbi->sb_n_free;
sbi               193 fs/hpfs/super.c 	buf->f_files = sbi->sb_dirband_size / 4;
sbi               450 fs/hpfs/super.c 	struct hpfs_sb_info *sbi = hpfs_sb(s);
sbi               457 fs/hpfs/super.c 	uid = sbi->sb_uid; gid = sbi->sb_gid;
sbi               458 fs/hpfs/super.c 	umask = 0777 & ~sbi->sb_mode;
sbi               459 fs/hpfs/super.c 	lowercase = sbi->sb_lowercase;
sbi               460 fs/hpfs/super.c 	eas = sbi->sb_eas; chk = sbi->sb_chk; chkdsk = sbi->sb_chkdsk;
sbi               461 fs/hpfs/super.c 	errs = sbi->sb_err; timeshift = sbi->sb_timeshift;
sbi               472 fs/hpfs/super.c 	if (timeshift != sbi->sb_timeshift) {
sbi               479 fs/hpfs/super.c 	sbi->sb_uid = uid; sbi->sb_gid = gid;
sbi               480 fs/hpfs/super.c 	sbi->sb_mode = 0777 & ~umask;
sbi               481 fs/hpfs/super.c 	sbi->sb_lowercase = lowercase;
sbi               482 fs/hpfs/super.c 	sbi->sb_eas = eas; sbi->sb_chk = chk; sbi->sb_chkdsk = chkdsk;
sbi               483 fs/hpfs/super.c 	sbi->sb_err = errs; sbi->sb_timeshift = timeshift;
sbi               497 fs/hpfs/super.c 	struct hpfs_sb_info *sbi = hpfs_sb(root->d_sb);
sbi               499 fs/hpfs/super.c 	seq_printf(seq, ",uid=%u", from_kuid_munged(&init_user_ns, sbi->sb_uid));
sbi               500 fs/hpfs/super.c 	seq_printf(seq, ",gid=%u", from_kgid_munged(&init_user_ns, sbi->sb_gid));
sbi               501 fs/hpfs/super.c 	seq_printf(seq, ",umask=%03o", (~sbi->sb_mode & 0777));
sbi               502 fs/hpfs/super.c 	if (sbi->sb_lowercase)
sbi               504 fs/hpfs/super.c 	if (!sbi->sb_chk)
sbi               506 fs/hpfs/super.c 	if (sbi->sb_chk == 2)
sbi               508 fs/hpfs/super.c 	if (!sbi->sb_err)
sbi               510 fs/hpfs/super.c 	if (sbi->sb_err == 2)
sbi               512 fs/hpfs/super.c 	if (!sbi->sb_chkdsk)
sbi               514 fs/hpfs/super.c 	if (sbi->sb_chkdsk == 2)
sbi               516 fs/hpfs/super.c 	if (!sbi->sb_eas)
sbi               518 fs/hpfs/super.c 	if (sbi->sb_eas == 1)
sbi               520 fs/hpfs/super.c 	if (sbi->sb_timeshift)
sbi               521 fs/hpfs/super.c 		seq_printf(seq, ",timeshift=%d", sbi->sb_timeshift);
sbi               544 fs/hpfs/super.c 	struct hpfs_sb_info *sbi;
sbi               558 fs/hpfs/super.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               559 fs/hpfs/super.c 	if (!sbi) {
sbi               562 fs/hpfs/super.c 	s->s_fs_info = sbi;
sbi               564 fs/hpfs/super.c 	mutex_init(&sbi->hpfs_mutex);
sbi               589 fs/hpfs/super.c 	sbi->sb_fs_size = -1;
sbi               620 fs/hpfs/super.c 	sbi->sb_root = le32_to_cpu(superblock->root);
sbi               621 fs/hpfs/super.c 	sbi->sb_fs_size = le32_to_cpu(superblock->n_sectors);
sbi               622 fs/hpfs/super.c 	sbi->sb_bitmaps = le32_to_cpu(superblock->bitmaps);
sbi               623 fs/hpfs/super.c 	sbi->sb_dirband_start = le32_to_cpu(superblock->dir_band_start);
sbi               624 fs/hpfs/super.c 	sbi->sb_dirband_size = le32_to_cpu(superblock->n_dir_band);
sbi               625 fs/hpfs/super.c 	sbi->sb_dmap = le32_to_cpu(superblock->dir_band_bitmap);
sbi               626 fs/hpfs/super.c 	sbi->sb_uid = uid;
sbi               627 fs/hpfs/super.c 	sbi->sb_gid = gid;
sbi               628 fs/hpfs/super.c 	sbi->sb_mode = 0777 & ~umask;
sbi               629 fs/hpfs/super.c 	sbi->sb_n_free = -1;
sbi               630 fs/hpfs/super.c 	sbi->sb_n_free_dnodes = -1;
sbi               631 fs/hpfs/super.c 	sbi->sb_lowercase = lowercase;
sbi               632 fs/hpfs/super.c 	sbi->sb_eas = eas;
sbi               633 fs/hpfs/super.c 	sbi->sb_chk = chk;
sbi               634 fs/hpfs/super.c 	sbi->sb_chkdsk = chkdsk;
sbi               635 fs/hpfs/super.c 	sbi->sb_err = errs;
sbi               636 fs/hpfs/super.c 	sbi->sb_timeshift = timeshift;
sbi               637 fs/hpfs/super.c 	sbi->sb_was_error = 0;
sbi               638 fs/hpfs/super.c 	sbi->sb_cp_table = NULL;
sbi               639 fs/hpfs/super.c 	sbi->sb_c_bitmap = -1;
sbi               640 fs/hpfs/super.c 	sbi->sb_max_fwd_alloc = 0xffffff;
sbi               642 fs/hpfs/super.c 	if (sbi->sb_fs_size >= 0x80000000) {
sbi               644 fs/hpfs/super.c 			(unsigned)sbi->sb_fs_size);
sbi               652 fs/hpfs/super.c 	if (!(sbi->sb_bmp_dir = hpfs_load_bitmap_directory(s, le32_to_cpu(superblock->bitmaps))))
sbi               688 fs/hpfs/super.c 		a = sbi->sb_dirband_size;
sbi               689 fs/hpfs/super.c 		sbi->sb_dirband_size = 0;
sbi               696 fs/hpfs/super.c 		sbi->sb_dirband_size = a;
sbi               702 fs/hpfs/super.c 		if (!(sbi->sb_cp_table = hpfs_load_code_page(s, le32_to_cpu(spareblock->code_page_dir))))
sbi               709 fs/hpfs/super.c 	root = iget_locked(s, sbi->sb_root);
sbi               723 fs/hpfs/super.c 	root_dno = hpfs_fnode_dno(s, sbi->sb_root);
sbi               752 fs/hpfs/super.c 	free_sbi(sbi);
sbi               992 fs/hugetlbfs/inode.c 	struct hugetlbfs_sb_info *sbi = HUGETLBFS_SB(sb);
sbi               994 fs/hugetlbfs/inode.c 	if (sbi) {
sbi               997 fs/hugetlbfs/inode.c 		if (sbi->spool)
sbi               998 fs/hugetlbfs/inode.c 			hugepage_put_subpool(sbi->spool);
sbi              1000 fs/hugetlbfs/inode.c 		kfree(sbi);
sbi                96 fs/isofs/dir.c 	struct isofs_sb_info *sbi = ISOFS_SB(inode->i_sb);
sbi               166 fs/isofs/dir.c 		if (de->flags[-sbi->s_high_sierra] & 0x80) {
sbi               198 fs/isofs/dir.c 		if ((sbi->s_hide && (de->flags[-sbi->s_high_sierra] & 1)) ||
sbi               199 fs/isofs/dir.c 		    (!sbi->s_showassoc &&
sbi               200 fs/isofs/dir.c 				(de->flags[-sbi->s_high_sierra] & 4))) {
sbi               206 fs/isofs/dir.c 		if (sbi->s_rock) {
sbi               215 fs/isofs/dir.c 			if (sbi->s_joliet_level) {
sbi               220 fs/isofs/dir.c 			if (sbi->s_mapping == 'a') {
sbi               224 fs/isofs/dir.c 			if (sbi->s_mapping == 'n') {
sbi                53 fs/isofs/inode.c 	struct isofs_sb_info *sbi = ISOFS_SB(sb);
sbi                56 fs/isofs/inode.c 	unload_nls(sbi->s_nls_iocharset);
sbi                59 fs/isofs/inode.c 	kfree(sbi);
sbi               488 fs/isofs/inode.c 	struct isofs_sb_info *sbi = ISOFS_SB(root->d_sb);
sbi               490 fs/isofs/inode.c 	if (!sbi->s_rock)		seq_puts(m, ",norock");
sbi               491 fs/isofs/inode.c 	else if (!sbi->s_joliet_level)	seq_puts(m, ",nojoliet");
sbi               492 fs/isofs/inode.c 	if (sbi->s_cruft)		seq_puts(m, ",cruft");
sbi               493 fs/isofs/inode.c 	if (sbi->s_hide)		seq_puts(m, ",hide");
sbi               494 fs/isofs/inode.c 	if (sbi->s_nocompress)		seq_puts(m, ",nocompress");
sbi               495 fs/isofs/inode.c 	if (sbi->s_overriderockperm)	seq_puts(m, ",overriderockperm");
sbi               496 fs/isofs/inode.c 	if (sbi->s_showassoc)		seq_puts(m, ",showassoc");
sbi               497 fs/isofs/inode.c 	if (sbi->s_utf8)		seq_puts(m, ",utf8");
sbi               499 fs/isofs/inode.c 	if (sbi->s_check)		seq_printf(m, ",check=%c", sbi->s_check);
sbi               500 fs/isofs/inode.c 	if (sbi->s_mapping)		seq_printf(m, ",map=%c", sbi->s_mapping);
sbi               501 fs/isofs/inode.c 	if (sbi->s_session != 255)	seq_printf(m, ",session=%u", sbi->s_session - 1);
sbi               502 fs/isofs/inode.c 	if (sbi->s_sbsector != -1)	seq_printf(m, ",sbsector=%u", sbi->s_sbsector);
sbi               507 fs/isofs/inode.c 	if (sbi->s_uid_set)
sbi               509 fs/isofs/inode.c 			   from_kuid_munged(&init_user_ns, sbi->s_uid));
sbi               510 fs/isofs/inode.c 	if (sbi->s_gid_set)
sbi               512 fs/isofs/inode.c 			   from_kgid_munged(&init_user_ns, sbi->s_gid));
sbi               514 fs/isofs/inode.c 	if (sbi->s_dmode != ISOFS_INVALID_MODE)
sbi               515 fs/isofs/inode.c 		seq_printf(m, ",dmode=%o", sbi->s_dmode);
sbi               516 fs/isofs/inode.c 	if (sbi->s_fmode != ISOFS_INVALID_MODE)
sbi               517 fs/isofs/inode.c 		seq_printf(m, ",fmode=%o", sbi->s_fmode);
sbi               520 fs/isofs/inode.c 	if (sbi->s_nls_iocharset &&
sbi               521 fs/isofs/inode.c 	    strcmp(sbi->s_nls_iocharset->charset, CONFIG_NLS_DEFAULT) != 0)
sbi               522 fs/isofs/inode.c 		seq_printf(m, ",iocharset=%s", sbi->s_nls_iocharset->charset);
sbi               630 fs/isofs/inode.c 	struct isofs_sb_info *sbi;
sbi               638 fs/isofs/inode.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi               639 fs/isofs/inode.c 	if (!sbi)
sbi               641 fs/isofs/inode.c 	s->s_fs_info = sbi;
sbi               663 fs/isofs/inode.c 	sbi->s_high_sierra = 0; /* default is iso9660 */
sbi               664 fs/isofs/inode.c 	sbi->s_session = opt.session;
sbi               665 fs/isofs/inode.c 	sbi->s_sbsector = opt.sbsector;
sbi               726 fs/isofs/inode.c 				sbi->s_high_sierra = 1;
sbi               762 fs/isofs/inode.c 	if(sbi->s_high_sierra){
sbi               764 fs/isofs/inode.c 		sbi->s_nzones = isonum_733(h_pri->volume_space_size);
sbi               765 fs/isofs/inode.c 		sbi->s_log_zone_size = isonum_723(h_pri->logical_block_size);
sbi               766 fs/isofs/inode.c 		sbi->s_max_size = isonum_733(h_pri->volume_space_size);
sbi               771 fs/isofs/inode.c 		sbi->s_nzones = isonum_733(pri->volume_space_size);
sbi               772 fs/isofs/inode.c 		sbi->s_log_zone_size = isonum_723(pri->logical_block_size);
sbi               773 fs/isofs/inode.c 		sbi->s_max_size = isonum_733(pri->volume_space_size);
sbi               776 fs/isofs/inode.c 	sbi->s_ninodes = 0; /* No way to figure this out easily */
sbi               778 fs/isofs/inode.c 	orig_zonesize = sbi->s_log_zone_size;
sbi               790 fs/isofs/inode.c 	switch (sbi->s_log_zone_size) {
sbi               791 fs/isofs/inode.c 	case  512: sbi->s_log_zone_size =  9; break;
sbi               792 fs/isofs/inode.c 	case 1024: sbi->s_log_zone_size = 10; break;
sbi               793 fs/isofs/inode.c 	case 2048: sbi->s_log_zone_size = 11; break;
sbi               816 fs/isofs/inode.c 	sbi->s_firstdatazone = first_data_zone;
sbi               819 fs/isofs/inode.c 		sbi->s_max_size, 1UL << sbi->s_log_zone_size);
sbi               820 fs/isofs/inode.c 	printk(KERN_DEBUG "ISOFS: First datazone:%ld\n", sbi->s_firstdatazone);
sbi               821 fs/isofs/inode.c 	if(sbi->s_high_sierra)
sbi               867 fs/isofs/inode.c 	sbi->s_nls_iocharset = NULL;
sbi               872 fs/isofs/inode.c 		sbi->s_nls_iocharset = load_nls(p);
sbi               873 fs/isofs/inode.c 		if (! sbi->s_nls_iocharset) {
sbi               877 fs/isofs/inode.c 			sbi->s_nls_iocharset = load_nls_default();
sbi               883 fs/isofs/inode.c 	sbi->s_mapping = opt.map;
sbi               884 fs/isofs/inode.c 	sbi->s_rock = (opt.rock ? 2 : 0);
sbi               885 fs/isofs/inode.c 	sbi->s_rock_offset = -1; /* initial offset, will guess until SP is found*/
sbi               886 fs/isofs/inode.c 	sbi->s_cruft = opt.cruft;
sbi               887 fs/isofs/inode.c 	sbi->s_hide = opt.hide;
sbi               888 fs/isofs/inode.c 	sbi->s_showassoc = opt.showassoc;
sbi               889 fs/isofs/inode.c 	sbi->s_uid = opt.uid;
sbi               890 fs/isofs/inode.c 	sbi->s_gid = opt.gid;
sbi               891 fs/isofs/inode.c 	sbi->s_uid_set = opt.uid_set;
sbi               892 fs/isofs/inode.c 	sbi->s_gid_set = opt.gid_set;
sbi               893 fs/isofs/inode.c 	sbi->s_utf8 = opt.utf8;
sbi               894 fs/isofs/inode.c 	sbi->s_nocompress = opt.nocompress;
sbi               895 fs/isofs/inode.c 	sbi->s_overriderockperm = opt.overriderockperm;
sbi               902 fs/isofs/inode.c 		sbi->s_fmode = opt.fmode & 0777;
sbi               904 fs/isofs/inode.c 		sbi->s_fmode = ISOFS_INVALID_MODE;
sbi               906 fs/isofs/inode.c 		sbi->s_dmode = opt.dmode & 0777;
sbi               908 fs/isofs/inode.c 		sbi->s_dmode = ISOFS_INVALID_MODE;
sbi               915 fs/isofs/inode.c 	inode = isofs_iget(s, sbi->s_firstdatazone, 0);
sbi               923 fs/isofs/inode.c 	if (sbi->s_rock == 1 && joliet_level &&
sbi               924 fs/isofs/inode.c 				rootdir_empty(s, sbi->s_firstdatazone)) {
sbi               928 fs/isofs/inode.c 		sbi->s_rock = 0;
sbi               939 fs/isofs/inode.c 	if (sbi->s_rock == 1) {
sbi               942 fs/isofs/inode.c 		sbi->s_rock = 0;
sbi               943 fs/isofs/inode.c 		if (sbi->s_firstdatazone != first_data_zone) {
sbi               944 fs/isofs/inode.c 			sbi->s_firstdatazone = first_data_zone;
sbi               948 fs/isofs/inode.c 			inode = isofs_iget(s, sbi->s_firstdatazone, 0);
sbi               961 fs/isofs/inode.c 	sbi->s_joliet_level = joliet_level;
sbi               976 fs/isofs/inode.c 	sbi->s_check = opt.check;
sbi              1004 fs/isofs/inode.c 	unload_nls(sbi->s_nls_iocharset);
sbi              1013 fs/isofs/inode.c 		sbi->s_log_zone_size);
sbi              1028 fs/isofs/inode.c 	kfree(sbi);
sbi              1311 fs/isofs/inode.c 	struct isofs_sb_info *sbi = ISOFS_SB(sb);
sbi              1314 fs/isofs/inode.c 	int high_sierra = sbi->s_high_sierra;
sbi              1358 fs/isofs/inode.c 		if (sbi->s_dmode != ISOFS_INVALID_MODE)
sbi              1359 fs/isofs/inode.c 			inode->i_mode = S_IFDIR | sbi->s_dmode;
sbi              1370 fs/isofs/inode.c 		if (sbi->s_fmode != ISOFS_INVALID_MODE) {
sbi              1371 fs/isofs/inode.c 			inode->i_mode = S_IFREG | sbi->s_fmode;
sbi              1382 fs/isofs/inode.c 	inode->i_uid = sbi->s_uid;
sbi              1383 fs/isofs/inode.c 	inode->i_gid = sbi->s_gid;
sbi              1408 fs/isofs/inode.c 	if (sbi->s_cruft)
sbi              1454 fs/isofs/inode.c 		if (sbi->s_uid_set)
sbi              1455 fs/isofs/inode.c 			inode->i_uid = sbi->s_uid;
sbi              1456 fs/isofs/inode.c 		if (sbi->s_gid_set)
sbi              1457 fs/isofs/inode.c 			inode->i_gid = sbi->s_gid;
sbi              1460 fs/isofs/inode.c 	if (S_ISDIR(inode->i_mode) && sbi->s_overriderockperm &&
sbi              1461 fs/isofs/inode.c 	    sbi->s_dmode != ISOFS_INVALID_MODE)
sbi              1462 fs/isofs/inode.c 		inode->i_mode = S_IFDIR | sbi->s_dmode;
sbi              1463 fs/isofs/inode.c 	if (S_ISREG(inode->i_mode) && sbi->s_overriderockperm &&
sbi              1464 fs/isofs/inode.c 	    sbi->s_fmode != ISOFS_INVALID_MODE)
sbi              1465 fs/isofs/inode.c 		inode->i_mode = S_IFREG | sbi->s_fmode;
sbi                44 fs/isofs/namei.c 	struct isofs_sb_info *sbi = ISOFS_SB(dir->i_sb);
sbi               108 fs/isofs/namei.c 		if (sbi->s_rock &&
sbi               113 fs/isofs/namei.c 		} else if (sbi->s_joliet_level) {
sbi               117 fs/isofs/namei.c 		} else if (sbi->s_mapping == 'a') {
sbi               120 fs/isofs/namei.c 		} else if (sbi->s_mapping == 'n') {
sbi               131 fs/isofs/namei.c 			(!sbi->s_hide ||
sbi               132 fs/isofs/namei.c 				(!(de->flags[-sbi->s_high_sierra] & 1))) &&
sbi               133 fs/isofs/namei.c 			(sbi->s_showassoc ||
sbi               134 fs/isofs/namei.c 				(!(de->flags[-sbi->s_high_sierra] & 4)))) {
sbi               697 fs/isofs/rock.c 	struct isofs_sb_info *sbi = ISOFS_SB(inode->i_sb);
sbi               710 fs/isofs/rock.c 	if (!sbi->s_rock)
sbi              1015 fs/jfs/jfs_dmap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi              1021 fs/jfs/jfs_dmap.c 	struct inode *ipbmap = sbi->ipbmap;
sbi              1027 fs/jfs/jfs_dmap.c 	if (((rel_block = blkno & (sbi->nbperpage - 1))) &&
sbi              1028 fs/jfs/jfs_dmap.c 	    (rel_block + nblocks + addnblocks > sbi->nbperpage))
sbi              1042 fs/jfs/jfs_dmap.c 	bmp = sbi->bmap;
sbi              3373 fs/jfs/jfs_dmap.c 	struct jfs_sb_info *sbi = JFS_SBI(ipbmap->i_sb);
sbi              3374 fs/jfs/jfs_dmap.c 	int nbperpage = sbi->nbperpage;
sbi              3382 fs/jfs/jfs_dmap.c 	struct bmap *bmp = sbi->bmap;
sbi              3465 fs/jfs/jfs_dmap.c 	p = BLKTOL1(blkno, sbi->l2nbperpage);	/* L1 page */
sbi              3482 fs/jfs/jfs_dmap.c 			p = BLKTOL0(blkno, sbi->l2nbperpage);
sbi              3516 fs/jfs/jfs_dmap.c 					      sbi->l2nbperpage);
sbi               121 fs/jfs/jfs_dmap.h #define BLKTOAG(b,sbi)	((b) >> ((sbi)->bmap->db_agl2size))
sbi               324 fs/jfs/jfs_dtree.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               372 fs/jfs/jfs_dtree.c 		if (dquot_alloc_block(ip, sbi->nbperpage))
sbi               374 fs/jfs/jfs_dtree.c 		if (dbAlloc(ip, 0, sbi->nbperpage, &xaddr)) {
sbi               375 fs/jfs/jfs_dtree.c 			dquot_free_block(ip, sbi->nbperpage);
sbi               393 fs/jfs/jfs_dtree.c 		if (xtInsert(tid, ip, 0, 0, sbi->nbperpage, &xaddr, 0)) {
sbi               398 fs/jfs/jfs_dtree.c 			dbFree(ip, xaddr, sbi->nbperpage);
sbi               399 fs/jfs/jfs_dtree.c 			dquot_free_block(ip, sbi->nbperpage);
sbi               434 fs/jfs/jfs_dtree.c 	blkno = ((offset + 1) >> L2PSIZE) << sbi->l2nbperpage;
sbi               440 fs/jfs/jfs_dtree.c 		if (xtInsert(tid, ip, 0, blkno, sbi->nbperpage, &xaddr, 0)) {
sbi               921 fs/jfs/jfs_dtree.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi               969 fs/jfs/jfs_dtree.c 		n = sbi->bsize >> L2DTSLOTSIZE;
sbi               995 fs/jfs/jfs_dtree.c 			ip->i_size = xlen << sbi->l2bsize;
sbi              1008 fs/jfs/jfs_dtree.c 	xsize = xlen << sbi->l2bsize;
sbi              1024 fs/jfs/jfs_dtree.c 		if ((rc = dbReAlloc(sbi->ipbmap, xaddr, (s64) xlen,
sbi              1047 fs/jfs/jfs_dtree.c 			ip->i_size = lengthPXD(pxd) << sbi->l2bsize;
sbi              1068 fs/jfs/jfs_dtree.c 	xlen = sbi->nbperpage;
sbi              1177 fs/jfs/jfs_dtree.c 							sbi->mntflag);
sbi              1189 fs/jfs/jfs_dtree.c 				dtGetKey(rp, 0, &key, sbi->mntflag);
sbi              1192 fs/jfs/jfs_dtree.c 				if ((sbi->mntflag & JFS_OS2) == JFS_OS2)
sbi              1200 fs/jfs/jfs_dtree.c 			dtGetKey(rp, 0, &key, sbi->mntflag);
sbi                75 fs/jfs/jfs_extent.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi                91 fs/jfs/jfs_extent.c 	xoff = pno << sbi->l2nbperpage;
sbi               499 fs/jfs/jfs_extent.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi               501 fs/jfs/jfs_extent.c 	int rc, nbperpage = sbi->nbperpage;
sbi               502 fs/jfs/jfs_extent.c 	struct bmap *bmp = sbi->bmap;
sbi               537 fs/jfs/jfs_extent.c 		ag = BLKTOAG(daddr, sbi);
sbi               293 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi               308 fs/jfs/jfs_imap.c 	ipimap = sbi->ipimap;
sbi               339 fs/jfs/jfs_imap.c 	blkno = INOPBLK(&iagp->inoext[extno], ino, sbi->l2nbperpage);
sbi               347 fs/jfs/jfs_imap.c 	pageno = blkno >> sbi->l2nbperpage;
sbi               349 fs/jfs/jfs_imap.c 	if ((block_offset = ((u32) blkno & (sbi->nbperpage - 1)))) {
sbi               354 fs/jfs/jfs_imap.c 		     (sbi->nbperpage - block_offset) << sbi->l2niperblk;
sbi               357 fs/jfs/jfs_imap.c 			rel_inode += block_offset << sbi->l2niperblk;
sbi               365 fs/jfs/jfs_imap.c 	mp = read_metapage(ipimap, pageno << sbi->l2nbperpage, PSIZE, 1);
sbi               418 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               431 fs/jfs/jfs_imap.c 		address = addressPXD(&sbi->ait2) >> sbi->l2nbperpage;
sbi               432 fs/jfs/jfs_imap.c 		JFS_IP(ip)->ipimap = sbi->ipaimap2;
sbi               435 fs/jfs/jfs_imap.c 		JFS_IP(ip)->ipimap = sbi->ipaimap;
sbi               445 fs/jfs/jfs_imap.c 	mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1);
sbi               473 fs/jfs/jfs_imap.c 	if ((inum == FILESYSTEM_I) && (JFS_IP(ip)->ipimap == sbi->ipaimap)) {
sbi               474 fs/jfs/jfs_imap.c 		sbi->gengen = le32_to_cpu(dp->di_gengen);
sbi               475 fs/jfs/jfs_imap.c 		sbi->inostamp = le32_to_cpu(dp->di_inostamp);
sbi               500 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi               507 fs/jfs/jfs_imap.c 		address = addressPXD(&sbi->ait2) >> sbi->l2nbperpage;
sbi               516 fs/jfs/jfs_imap.c 	mp = read_metapage(ip, address << sbi->l2nbperpage, PSIZE, 1);
sbi               531 fs/jfs/jfs_imap.c 		dp->di_gengen = cpu_to_le32(sbi->gengen);
sbi               581 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi               616 fs/jfs/jfs_imap.c 	blkno = INOPBLK(&(jfs_ip->ixpxd), ino, sbi->l2nbperpage);
sbi               619 fs/jfs/jfs_imap.c 	pageno = blkno >> sbi->l2nbperpage;
sbi               621 fs/jfs/jfs_imap.c 	if ((block_offset = ((u32) blkno & (sbi->nbperpage - 1)))) {
sbi               626 fs/jfs/jfs_imap.c 		    (sbi->nbperpage - block_offset) << sbi->l2niperblk;
sbi               629 fs/jfs/jfs_imap.c 			rel_inode += block_offset << sbi->l2niperblk;
sbi               637 fs/jfs/jfs_imap.c 	mp = read_metapage(ipimap, pageno << sbi->l2nbperpage, PSIZE, 1);
sbi              2161 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi;
sbi              2173 fs/jfs/jfs_imap.c 	sbi = JFS_SBI(ipimap->i_sb);
sbi              2179 fs/jfs/jfs_imap.c 	agno = BLKTOAG(le64_to_cpu(iagp->agstart), sbi);
sbi              2248 fs/jfs/jfs_imap.c 		hint = ((s64) agno << sbi->bmap->db_agl2size) - 1;
sbi              2264 fs/jfs/jfs_imap.c 	for (i = 0; i < imap->im_nbperiext; i += sbi->nbperpage) {
sbi              2278 fs/jfs/jfs_imap.c 			dp->di_inostamp = cpu_to_le32(sbi->inostamp);
sbi              2438 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi;
sbi              2449 fs/jfs/jfs_imap.c 	sbi = JFS_SBI(sb);
sbi              2462 fs/jfs/jfs_imap.c 		blkno = IAGTOLBLK(iagno, sbi->l2nbperpage);
sbi              2498 fs/jfs/jfs_imap.c 		blkno = IAGTOLBLK(iagno, sbi->l2nbperpage);
sbi              2501 fs/jfs/jfs_imap.c 		xlen = sbi->nbperpage;
sbi              3029 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi              3036 fs/jfs/jfs_imap.c 	if (sbi->umask != -1) {
sbi              3037 fs/jfs/jfs_imap.c 		ip->i_mode = (ip->i_mode & ~0777) | (0777 & ~sbi->umask);
sbi              3051 fs/jfs/jfs_imap.c 	if (!uid_valid(sbi->uid))
sbi              3054 fs/jfs/jfs_imap.c 		ip->i_uid = sbi->uid;
sbi              3058 fs/jfs/jfs_imap.c 	if (!gid_valid(sbi->gid))
sbi              3061 fs/jfs/jfs_imap.c 		ip->i_gid = sbi->gid;
sbi              3113 fs/jfs/jfs_imap.c 	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
sbi              3116 fs/jfs/jfs_imap.c 	dip->di_inostamp = cpu_to_le32(sbi->inostamp);
sbi              3122 fs/jfs/jfs_imap.c 	if (!uid_valid(sbi->uid))
sbi              3127 fs/jfs/jfs_imap.c 	if (!gid_valid(sbi->gid))
sbi              3136 fs/jfs/jfs_imap.c 	if (sbi->umask == -1)
sbi               167 fs/jfs/jfs_logmgr.c static int lmLogFileSystem(struct jfs_log * log, struct jfs_sb_info *sbi,
sbi               204 fs/jfs/jfs_logmgr.c 	struct jfs_sb_info *sbi;
sbi               206 fs/jfs/jfs_logmgr.c 	list_for_each_entry(sbi, &log->sb_list, log_list) {
sbi               207 fs/jfs/jfs_logmgr.c 		writer(sbi->ipbmap->i_mapping);
sbi               208 fs/jfs/jfs_logmgr.c 		writer(sbi->ipimap->i_mapping);
sbi               209 fs/jfs/jfs_logmgr.c 		writer(sbi->direct_inode->i_mapping);
sbi              1071 fs/jfs/jfs_logmgr.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi              1073 fs/jfs/jfs_logmgr.c 	if (sbi->flag & JFS_NOINTEGRITY)
sbi              1076 fs/jfs/jfs_logmgr.c 	if (sbi->mntflag & JFS_INLINELOG)
sbi              1081 fs/jfs/jfs_logmgr.c 		if (log->bdev->bd_dev == sbi->logdev) {
sbi              1082 fs/jfs/jfs_logmgr.c 			if (!uuid_equal(&log->uuid, &sbi->loguuid)) {
sbi              1090 fs/jfs/jfs_logmgr.c 			if ((rc = lmLogFileSystem(log, sbi, 1))) {
sbi              1111 fs/jfs/jfs_logmgr.c 	bdev = blkdev_get_by_dev(sbi->logdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL,
sbi              1119 fs/jfs/jfs_logmgr.c 	uuid_copy(&log->uuid, &sbi->loguuid);
sbi              1132 fs/jfs/jfs_logmgr.c 	if ((rc = lmLogFileSystem(log, sbi, 1)))
sbi              1137 fs/jfs/jfs_logmgr.c 	list_add(&sbi->log_list, &log->sb_list);
sbi              1138 fs/jfs/jfs_logmgr.c 	sbi->log = log;
sbi              1444 fs/jfs/jfs_logmgr.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi              1445 fs/jfs/jfs_logmgr.c 	struct jfs_log *log = sbi->log;
sbi              1453 fs/jfs/jfs_logmgr.c 	list_del(&sbi->log_list);
sbi              1455 fs/jfs/jfs_logmgr.c 	sbi->log = NULL;
sbi              1473 fs/jfs/jfs_logmgr.c 		lmLogFileSystem(log, sbi, 0);
sbi              1714 fs/jfs/jfs_logmgr.c static int lmLogFileSystem(struct jfs_log * log, struct jfs_sb_info *sbi,
sbi              1721 fs/jfs/jfs_logmgr.c 	uuid_t *uuid = &sbi->uuid;
sbi              1734 fs/jfs/jfs_logmgr.c 				sbi->aggregate = i;
sbi              2367 fs/jfs/jfs_logmgr.c 	struct jfs_sb_info *sbi;
sbi              2378 fs/jfs/jfs_logmgr.c 	sbi = list_entry(log->sb_list.next, struct jfs_sb_info, log_list);
sbi              2383 fs/jfs/jfs_logmgr.c 	npages = logSize >> sbi->l2nbperpage;
sbi              2402 fs/jfs/jfs_logmgr.c 	logsuper->flag = cpu_to_le32(sbi->mntflag);	/* ? */
sbi              2404 fs/jfs/jfs_logmgr.c 	logsuper->bsize = cpu_to_le32(sbi->bsize);
sbi              2405 fs/jfs/jfs_logmgr.c 	logsuper->l2bsize = cpu_to_le32(sbi->l2bsize);
sbi              2409 fs/jfs/jfs_logmgr.c 	bp->l_blkno = logAddress + sbi->nbperpage;
sbi              2451 fs/jfs/jfs_logmgr.c 	bp->l_blkno += sbi->nbperpage;
sbi              2464 fs/jfs/jfs_logmgr.c 		bp->l_blkno += sbi->nbperpage;
sbi                71 fs/jfs/jfs_mount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi                91 fs/jfs/jfs_mount.c 	sbi->ipaimap = ipaimap;
sbi               114 fs/jfs/jfs_mount.c 	sbi->ipbmap = ipbmap;
sbi               135 fs/jfs/jfs_mount.c 	if ((sbi->mntflag & JFS_BAD_SAIT) == 0) {
sbi               142 fs/jfs/jfs_mount.c 		sbi->ipaimap2 = ipaimap2;
sbi               156 fs/jfs/jfs_mount.c 		sbi->ipaimap2 = NULL;
sbi               174 fs/jfs/jfs_mount.c 	sbi->ipimap = ipimap;
sbi               228 fs/jfs/jfs_mount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               237 fs/jfs/jfs_mount.c 		if (chkSuper(sb) || (sbi->state != FM_CLEAN))
sbi               240 fs/jfs/jfs_mount.c 		truncate_inode_pages(sbi->ipimap->i_mapping, 0);
sbi               241 fs/jfs/jfs_mount.c 		truncate_inode_pages(sbi->ipbmap->i_mapping, 0);
sbi               242 fs/jfs/jfs_mount.c 		diUnmount(sbi->ipimap, 1);
sbi               243 fs/jfs/jfs_mount.c 		if ((rc = diMount(sbi->ipimap))) {
sbi               248 fs/jfs/jfs_mount.c 		dbUnmount(sbi->ipbmap, 1);
sbi               249 fs/jfs/jfs_mount.c 		if ((rc = dbMount(sbi->ipbmap))) {
sbi               291 fs/jfs/jfs_mount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               358 fs/jfs/jfs_mount.c 	sbi->state = le32_to_cpu(j_sb->s_state);
sbi               359 fs/jfs/jfs_mount.c 	sbi->mntflag = le32_to_cpu(j_sb->s_flag);
sbi               365 fs/jfs/jfs_mount.c 	sbi->bsize = bsize;
sbi               366 fs/jfs/jfs_mount.c 	sbi->l2bsize = le16_to_cpu(j_sb->s_l2bsize);
sbi               372 fs/jfs/jfs_mount.c 	sbi->nbperpage = PSIZE >> sbi->l2bsize;
sbi               373 fs/jfs/jfs_mount.c 	sbi->l2nbperpage = L2PSIZE - sbi->l2bsize;
sbi               374 fs/jfs/jfs_mount.c 	sbi->l2niperblk = sbi->l2bsize - L2DISIZE;
sbi               375 fs/jfs/jfs_mount.c 	if (sbi->mntflag & JFS_INLINELOG)
sbi               376 fs/jfs/jfs_mount.c 		sbi->logpxd = j_sb->s_logpxd;
sbi               378 fs/jfs/jfs_mount.c 		sbi->logdev = new_decode_dev(le32_to_cpu(j_sb->s_logdev));
sbi               379 fs/jfs/jfs_mount.c 		uuid_copy(&sbi->uuid, &j_sb->s_uuid);
sbi               380 fs/jfs/jfs_mount.c 		uuid_copy(&sbi->loguuid, &j_sb->s_loguuid);
sbi               382 fs/jfs/jfs_mount.c 	sbi->fsckpxd = j_sb->s_fsckpxd;
sbi               383 fs/jfs/jfs_mount.c 	sbi->ait2 = j_sb->s_ait2;
sbi               399 fs/jfs/jfs_mount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               403 fs/jfs/jfs_mount.c 	if (sbi->flag & JFS_NOINTEGRITY) {
sbi               405 fs/jfs/jfs_mount.c 			sbi->p_state = state;
sbi               408 fs/jfs/jfs_mount.c 			sbi->p_state = sbi->state;
sbi               411 fs/jfs/jfs_mount.c 			state = sbi->p_state;
sbi               414 fs/jfs/jfs_mount.c 	} else if (sbi->state == FM_DIRTY)
sbi               423 fs/jfs/jfs_mount.c 	sbi->state = state;
sbi               427 fs/jfs/jfs_mount.c 		j_sb->s_logdev = cpu_to_le32(new_encode_dev(sbi->log->bdev->bd_dev));
sbi               428 fs/jfs/jfs_mount.c 		j_sb->s_logserial = cpu_to_le32(sbi->log->serial);
sbi              2735 fs/jfs/jfs_txnmgr.c 	struct jfs_sb_info *sbi;
sbi              2745 fs/jfs/jfs_txnmgr.c 				sbi = JFS_SBI(tblk->sb);
sbi              2752 fs/jfs/jfs_txnmgr.c 				if (sbi->commit_state & IN_LAZYCOMMIT)
sbi              2755 fs/jfs/jfs_txnmgr.c 				sbi->commit_state |= IN_LAZYCOMMIT;
sbi              2767 fs/jfs/jfs_txnmgr.c 				sbi->commit_state &= ~IN_LAZYCOMMIT;
sbi                39 fs/jfs/jfs_umount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi                40 fs/jfs/jfs_umount.c 	struct inode *ipbmap = sbi->ipbmap;
sbi                41 fs/jfs/jfs_umount.c 	struct inode *ipimap = sbi->ipimap;
sbi                42 fs/jfs/jfs_umount.c 	struct inode *ipaimap = sbi->ipaimap;
sbi                43 fs/jfs/jfs_umount.c 	struct inode *ipaimap2 = sbi->ipaimap2;
sbi                54 fs/jfs/jfs_umount.c 	if ((log = sbi->log))
sbi                66 fs/jfs/jfs_umount.c 	sbi->ipimap = NULL;
sbi                71 fs/jfs/jfs_umount.c 	ipaimap2 = sbi->ipaimap2;
sbi                75 fs/jfs/jfs_umount.c 		sbi->ipaimap2 = NULL;
sbi                81 fs/jfs/jfs_umount.c 	ipaimap = sbi->ipaimap;
sbi                84 fs/jfs/jfs_umount.c 	sbi->ipaimap = NULL;
sbi                92 fs/jfs/jfs_umount.c 	sbi->ipimap = NULL;
sbi                98 fs/jfs/jfs_umount.c 	filemap_write_and_wait(sbi->direct_inode->i_mapping);
sbi               125 fs/jfs/jfs_umount.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               126 fs/jfs/jfs_umount.c 	struct jfs_log *log = sbi->log;
sbi               141 fs/jfs/jfs_umount.c 	dbSync(sbi->ipbmap);
sbi               142 fs/jfs/jfs_umount.c 	diSync(sbi->ipimap);
sbi               150 fs/jfs/jfs_umount.c 	filemap_write_and_wait(sbi->direct_inode->i_mapping);
sbi                52 fs/jfs/resize.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi                53 fs/jfs/resize.c 	struct inode *ipbmap = sbi->ipbmap;
sbi                55 fs/jfs/resize.c 	struct inode *ipimap = sbi->ipimap;
sbi                56 fs/jfs/resize.c 	struct jfs_log *log = sbi->log;
sbi                57 fs/jfs/resize.c 	struct bmap *bmp = sbi->bmap;
sbi                76 fs/jfs/resize.c 	if (sbi->mntflag & JFS_INLINELOG)
sbi                77 fs/jfs/resize.c 		oldLVSize = addressPXD(&sbi->logpxd) + lengthPXD(&sbi->logpxd);
sbi                79 fs/jfs/resize.c 		oldLVSize = addressPXD(&sbi->fsckpxd) +
sbi                80 fs/jfs/resize.c 		    lengthPXD(&sbi->fsckpxd);
sbi               125 fs/jfs/resize.c 	if ((sbi->mntflag & JFS_INLINELOG)) {
sbi               132 fs/jfs/resize.c 			t32 = (1 << (20 - sbi->l2bsize)) - 1;
sbi               135 fs/jfs/resize.c 			    min(newLogSize, MEGABYTE32 >> sbi->l2bsize);
sbi               143 fs/jfs/resize.c 			newLogSize = (newLogSize * MEGABYTE) >> sbi->l2bsize;
sbi               164 fs/jfs/resize.c 	newFSCKSize = t32 << sbi->l2nbperpage;
sbi               183 fs/jfs/resize.c 	if ((sbi->mntflag & JFS_INLINELOG) && (newLogAddress > oldLVSize)) {
sbi               201 fs/jfs/resize.c 	sbi->direct_inode->i_size =  i_size_read(sb->s_bdev->bd_inode);
sbi               203 fs/jfs/resize.c 	if (sbi->mntflag & JFS_INLINELOG) {
sbi               380 fs/jfs/resize.c 	xoff = newPage << sbi->l2nbperpage;
sbi               381 fs/jfs/resize.c 	xlen = (newNpages - nPages) << sbi->l2nbperpage;
sbi               382 fs/jfs/resize.c 	xlen = min(xlen, (int) nblocks) & ~(sbi->nbperpage - 1);
sbi               392 fs/jfs/resize.c 	ipbmap->i_size += xlen << sbi->l2bsize;
sbi               393 fs/jfs/resize.c 	inode_add_bytes(ipbmap, xlen << sbi->l2bsize);
sbi               493 fs/jfs/resize.c 	if (sbi->mntflag & JFS_INLINELOG) {
sbi                64 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi                71 fs/jfs/super.c 	if (sbi->flag & JFS_ERR_PANIC)
sbi                74 fs/jfs/super.c 	else if (sbi->flag & JFS_ERR_REMOUNT_RO) {
sbi               121 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(dentry->d_sb);
sbi               123 fs/jfs/super.c 	struct inomap *imap = JFS_IP(sbi->ipimap)->i_imap;
sbi               127 fs/jfs/super.c 	buf->f_bsize = sbi->bsize;
sbi               128 fs/jfs/super.c 	buf->f_blocks = sbi->bmap->db_mapsize;
sbi               129 fs/jfs/super.c 	buf->f_bfree = sbi->bmap->db_nfree;
sbi               130 fs/jfs/super.c 	buf->f_bavail = sbi->bmap->db_nfree;
sbi               141 fs/jfs/super.c 			((sbi->bmap->db_nfree >> imap->im_l2nbperiext)
sbi               146 fs/jfs/super.c 	buf->f_fsid.val[0] = crc32_le(0, (char *)&sbi->uuid,
sbi               147 fs/jfs/super.c 				      sizeof(sbi->uuid)/2);
sbi               149 fs/jfs/super.c 				      (char *)&sbi->uuid + sizeof(sbi->uuid)/2,
sbi               150 fs/jfs/super.c 				      sizeof(sbi->uuid)/2);
sbi               187 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               198 fs/jfs/super.c 	unload_nls(sbi->nls_tab);
sbi               200 fs/jfs/super.c 	truncate_inode_pages(sbi->direct_inode->i_mapping, 0);
sbi               201 fs/jfs/super.c 	iput(sbi->direct_inode);
sbi               203 fs/jfs/super.c 	kfree(sbi);
sbi               238 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               341 fs/jfs/super.c 			sbi->uid = make_kuid(current_user_ns(), val);
sbi               342 fs/jfs/super.c 			if (!uid_valid(sbi->uid))
sbi               355 fs/jfs/super.c 			sbi->gid = make_kgid(current_user_ns(), val);
sbi               356 fs/jfs/super.c 			if (!gid_valid(sbi->gid))
sbi               364 fs/jfs/super.c 			int rc = kstrtouint(umask, 8, &sbi->umask);
sbi               368 fs/jfs/super.c 			if (sbi->umask & ~0777) {
sbi               382 fs/jfs/super.c 			sbi->minblks_trim = 64;
sbi               402 fs/jfs/super.c 						&sbi->minblks_trim);
sbi               419 fs/jfs/super.c 		unload_nls(sbi->nls_tab);
sbi               420 fs/jfs/super.c 		sbi->nls_tab = nls_map;
sbi               492 fs/jfs/super.c 	struct jfs_sb_info *sbi;
sbi               500 fs/jfs/super.c 	sbi = kzalloc(sizeof(struct jfs_sb_info), GFP_KERNEL);
sbi               501 fs/jfs/super.c 	if (!sbi)
sbi               504 fs/jfs/super.c 	sb->s_fs_info = sbi;
sbi               508 fs/jfs/super.c 	sbi->sb = sb;
sbi               509 fs/jfs/super.c 	sbi->uid = INVALID_UID;
sbi               510 fs/jfs/super.c 	sbi->gid = INVALID_GID;
sbi               511 fs/jfs/super.c 	sbi->umask = -1;
sbi               518 fs/jfs/super.c 	sbi->flag = flag;
sbi               560 fs/jfs/super.c 	sbi->direct_inode = inode;
sbi               569 fs/jfs/super.c 		sbi->log = NULL;
sbi               583 fs/jfs/super.c 	if (sbi->mntflag & JFS_OS2)
sbi               610 fs/jfs/super.c 	filemap_write_and_wait(sbi->direct_inode->i_mapping);
sbi               611 fs/jfs/super.c 	truncate_inode_pages(sbi->direct_inode->i_mapping, 0);
sbi               612 fs/jfs/super.c 	make_bad_inode(sbi->direct_inode);
sbi               613 fs/jfs/super.c 	iput(sbi->direct_inode);
sbi               614 fs/jfs/super.c 	sbi->direct_inode = NULL;
sbi               616 fs/jfs/super.c 	unload_nls(sbi->nls_tab);
sbi               618 fs/jfs/super.c 	kfree(sbi);
sbi               624 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               625 fs/jfs/super.c 	struct jfs_log *log = sbi->log;
sbi               654 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               655 fs/jfs/super.c 	struct jfs_log *log = sbi->log;
sbi               699 fs/jfs/super.c 	struct jfs_sb_info *sbi = JFS_SBI(root->d_sb);
sbi               701 fs/jfs/super.c 	if (uid_valid(sbi->uid))
sbi               702 fs/jfs/super.c 		seq_printf(seq, ",uid=%d", from_kuid(&init_user_ns, sbi->uid));
sbi               703 fs/jfs/super.c 	if (gid_valid(sbi->gid))
sbi               704 fs/jfs/super.c 		seq_printf(seq, ",gid=%d", from_kgid(&init_user_ns, sbi->gid));
sbi               705 fs/jfs/super.c 	if (sbi->umask != -1)
sbi               706 fs/jfs/super.c 		seq_printf(seq, ",umask=%03o", sbi->umask);
sbi               707 fs/jfs/super.c 	if (sbi->flag & JFS_NOINTEGRITY)
sbi               709 fs/jfs/super.c 	if (sbi->flag & JFS_DISCARD)
sbi               710 fs/jfs/super.c 		seq_printf(seq, ",discard=%u", sbi->minblks_trim);
sbi               711 fs/jfs/super.c 	if (sbi->nls_tab)
sbi               712 fs/jfs/super.c 		seq_printf(seq, ",iocharset=%s", sbi->nls_tab->charset);
sbi               713 fs/jfs/super.c 	if (sbi->flag & JFS_ERR_CONTINUE)
sbi               715 fs/jfs/super.c 	if (sbi->flag & JFS_ERR_PANIC)
sbi               719 fs/jfs/super.c 	if (sbi->flag & JFS_USRQUOTA)
sbi               722 fs/jfs/super.c 	if (sbi->flag & JFS_GRPQUOTA)
sbi               206 fs/jfs/xattr.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               246 fs/jfs/xattr.c 	for (i = 0; i < nblocks; i += sbi->nbperpage) {
sbi               355 fs/jfs/xattr.c 	struct jfs_sb_info *sbi = JFS_SBI(sb);
sbi               378 fs/jfs/xattr.c 	nblocks = lengthDXD(&ji->ea) << sbi->l2nbperpage;
sbi               379 fs/jfs/xattr.c 	blkno = addressDXD(&ji->ea) << sbi->l2nbperpage;
sbi               386 fs/jfs/xattr.c 	for (i = 0; i < nblocks; i += sbi->nbperpage) {
sbi                45 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi                50 fs/minix/bitmap.c 	if (block < sbi->s_firstdatazone || block >= sbi->s_nzones) {
sbi                54 fs/minix/bitmap.c 	zone = block - sbi->s_firstdatazone + 1;
sbi                57 fs/minix/bitmap.c 	if (zone >= sbi->s_zmap_blocks) {
sbi                61 fs/minix/bitmap.c 	bh = sbi->s_zmap[zone];
sbi                73 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi                77 fs/minix/bitmap.c 	for (i = 0; i < sbi->s_zmap_blocks; i++) {
sbi                78 fs/minix/bitmap.c 		struct buffer_head *bh = sbi->s_zmap[i];
sbi                87 fs/minix/bitmap.c 			j += i * bits_per_zone + sbi->s_firstdatazone-1;
sbi                88 fs/minix/bitmap.c 			if (j < sbi->s_firstdatazone || j >= sbi->s_nzones)
sbi                99 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               100 fs/minix/bitmap.c 	u32 bits = sbi->s_nzones - sbi->s_firstdatazone + 1;
sbi               102 fs/minix/bitmap.c 	return (count_free(sbi->s_zmap, sb->s_blocksize, bits)
sbi               103 fs/minix/bitmap.c 		<< sbi->s_log_zone_size);
sbi               110 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               113 fs/minix/bitmap.c 	if (!ino || ino > sbi->s_ninodes) {
sbi               119 fs/minix/bitmap.c 	block = 2 + sbi->s_imap_blocks + sbi->s_zmap_blocks +
sbi               134 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               139 fs/minix/bitmap.c 	if (!ino || ino > sbi->s_ninodes) {
sbi               145 fs/minix/bitmap.c 	block = 2 + sbi->s_imap_blocks + sbi->s_zmap_blocks +
sbi               186 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi               192 fs/minix/bitmap.c 	if (ino < 1 || ino > sbi->s_ninodes) {
sbi               198 fs/minix/bitmap.c 	if (ino >= sbi->s_imap_blocks) {
sbi               205 fs/minix/bitmap.c 	bh = sbi->s_imap[ino];
sbi               216 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               231 fs/minix/bitmap.c 	for (i = 0; i < sbi->s_imap_blocks; i++) {
sbi               232 fs/minix/bitmap.c 		bh = sbi->s_imap[i];
sbi               251 fs/minix/bitmap.c 	if (!j || j > sbi->s_ninodes) {
sbi               269 fs/minix/bitmap.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               270 fs/minix/bitmap.c 	u32 bits = sbi->s_ninodes + 1;
sbi               272 fs/minix/bitmap.c 	return count_free(sbi->s_imap, sb->s_blocksize, bits);
sbi                76 fs/minix/dir.c static inline void *minix_next_entry(void *de, struct minix_sb_info *sbi)
sbi                78 fs/minix/dir.c 	return (void*)((char*)de + sbi->s_dirsize);
sbi                85 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi                86 fs/minix/dir.c 	unsigned chunk_size = sbi->s_dirsize;
sbi               108 fs/minix/dir.c 		for ( ; p <= limit; p = minix_next_entry(p, sbi)) {
sbi               111 fs/minix/dir.c 			if (sbi->s_version == MINIX_V3) {
sbi               121 fs/minix/dir.c 				unsigned l = strnlen(name, sbi->s_namelen);
sbi               157 fs/minix/dir.c 	struct minix_sb_info * sbi = minix_sb(sb);
sbi               175 fs/minix/dir.c 		limit = kaddr + minix_last_byte(dir, n) - sbi->s_dirsize;
sbi               176 fs/minix/dir.c 		for (p = kaddr; p <= limit; p = minix_next_entry(p, sbi)) {
sbi               177 fs/minix/dir.c 			if (sbi->s_version == MINIX_V3) {
sbi               188 fs/minix/dir.c 			if (namecompare(namelen, sbi->s_namelen, name, namx))
sbi               206 fs/minix/dir.c 	struct minix_sb_info * sbi = minix_sb(sb);
sbi               233 fs/minix/dir.c 		limit = kaddr + PAGE_SIZE - sbi->s_dirsize;
sbi               234 fs/minix/dir.c 		for (p = kaddr; p <= limit; p = minix_next_entry(p, sbi)) {
sbi               237 fs/minix/dir.c 			if (sbi->s_version == MINIX_V3) {
sbi               246 fs/minix/dir.c 				if (sbi->s_version == MINIX_V3)
sbi               255 fs/minix/dir.c 			if (namecompare(namelen, sbi->s_namelen, name, namx))
sbi               266 fs/minix/dir.c 	err = minix_prepare_chunk(page, pos, sbi->s_dirsize);
sbi               270 fs/minix/dir.c 	if (sbi->s_version == MINIX_V3) {
sbi               271 fs/minix/dir.c 		memset (namx + namelen, 0, sbi->s_dirsize - namelen - 4);
sbi               274 fs/minix/dir.c 		memset (namx + namelen, 0, sbi->s_dirsize - namelen - 2);
sbi               277 fs/minix/dir.c 	err = dir_commit_chunk(page, pos, sbi->s_dirsize);
sbi               294 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi               295 fs/minix/dir.c 	unsigned len = sbi->s_dirsize;
sbi               301 fs/minix/dir.c 		if (sbi->s_version == MINIX_V3)
sbi               318 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi               324 fs/minix/dir.c 	err = minix_prepare_chunk(page, 0, 2 * sbi->s_dirsize);
sbi               333 fs/minix/dir.c 	if (sbi->s_version == MINIX_V3) {
sbi               338 fs/minix/dir.c 		de3 = minix_next_entry(de3, sbi);
sbi               346 fs/minix/dir.c 		de = minix_next_entry(de, sbi);
sbi               352 fs/minix/dir.c 	err = dir_commit_chunk(page, 0, 2 * sbi->s_dirsize);
sbi               365 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi               377 fs/minix/dir.c 		limit = kaddr + minix_last_byte(inode, i) - sbi->s_dirsize;
sbi               378 fs/minix/dir.c 		for (p = kaddr; p <= limit; p = minix_next_entry(p, sbi)) {
sbi               379 fs/minix/dir.c 			if (sbi->s_version == MINIX_V3) {
sbi               416 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(dir->i_sb);
sbi               423 fs/minix/dir.c 	err = minix_prepare_chunk(page, pos, sbi->s_dirsize);
sbi               425 fs/minix/dir.c 		if (sbi->s_version == MINIX_V3)
sbi               429 fs/minix/dir.c 		err = dir_commit_chunk(page, pos, sbi->s_dirsize);
sbi               441 fs/minix/dir.c 	struct minix_sb_info *sbi = minix_sb(dir->i_sb);
sbi               445 fs/minix/dir.c 		de = minix_next_entry(page_address(page), sbi);
sbi               460 fs/minix/dir.c 		struct minix_sb_info *sbi = minix_sb(inode->i_sb);
sbi               462 fs/minix/dir.c 		if (sbi->s_version == MINIX_V3)
sbi                44 fs/minix/inode.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi                47 fs/minix/inode.c 		if (sbi->s_version != MINIX_V3)	 /* s_state is now out from V3 sb */
sbi                48 fs/minix/inode.c 			sbi->s_ms->s_state = sbi->s_mount_state;
sbi                49 fs/minix/inode.c 		mark_buffer_dirty(sbi->s_sbh);
sbi                51 fs/minix/inode.c 	for (i = 0; i < sbi->s_imap_blocks; i++)
sbi                52 fs/minix/inode.c 		brelse(sbi->s_imap[i]);
sbi                53 fs/minix/inode.c 	for (i = 0; i < sbi->s_zmap_blocks; i++)
sbi                54 fs/minix/inode.c 		brelse(sbi->s_zmap[i]);
sbi                55 fs/minix/inode.c 	brelse (sbi->s_sbh);
sbi                56 fs/minix/inode.c 	kfree(sbi->s_imap);
sbi                58 fs/minix/inode.c 	kfree(sbi);
sbi               118 fs/minix/inode.c 	struct minix_sb_info * sbi = minix_sb(sb);
sbi               122 fs/minix/inode.c 	ms = sbi->s_ms;
sbi               127 fs/minix/inode.c 		    !(sbi->s_mount_state & MINIX_VALID_FS))
sbi               130 fs/minix/inode.c 		if (sbi->s_version != MINIX_V3)
sbi               131 fs/minix/inode.c 			ms->s_state = sbi->s_mount_state;
sbi               132 fs/minix/inode.c 		mark_buffer_dirty(sbi->s_sbh);
sbi               135 fs/minix/inode.c 		if (sbi->s_version != MINIX_V3) {
sbi               136 fs/minix/inode.c 			sbi->s_mount_state = ms->s_state;
sbi               139 fs/minix/inode.c 			sbi->s_mount_state = MINIX_VALID_FS;
sbi               141 fs/minix/inode.c 		mark_buffer_dirty(sbi->s_sbh);
sbi               143 fs/minix/inode.c 		if (!(sbi->s_mount_state & MINIX_VALID_FS))
sbi               146 fs/minix/inode.c 		else if ((sbi->s_mount_state & MINIX_ERROR_FS))
sbi               161 fs/minix/inode.c 	struct minix_sb_info *sbi;
sbi               164 fs/minix/inode.c 	sbi = kzalloc(sizeof(struct minix_sb_info), GFP_KERNEL);
sbi               165 fs/minix/inode.c 	if (!sbi)
sbi               167 fs/minix/inode.c 	s->s_fs_info = sbi;
sbi               179 fs/minix/inode.c 	sbi->s_ms = ms;
sbi               180 fs/minix/inode.c 	sbi->s_sbh = bh;
sbi               181 fs/minix/inode.c 	sbi->s_mount_state = ms->s_state;
sbi               182 fs/minix/inode.c 	sbi->s_ninodes = ms->s_ninodes;
sbi               183 fs/minix/inode.c 	sbi->s_nzones = ms->s_nzones;
sbi               184 fs/minix/inode.c 	sbi->s_imap_blocks = ms->s_imap_blocks;
sbi               185 fs/minix/inode.c 	sbi->s_zmap_blocks = ms->s_zmap_blocks;
sbi               186 fs/minix/inode.c 	sbi->s_firstdatazone = ms->s_firstdatazone;
sbi               187 fs/minix/inode.c 	sbi->s_log_zone_size = ms->s_log_zone_size;
sbi               188 fs/minix/inode.c 	sbi->s_max_size = ms->s_max_size;
sbi               191 fs/minix/inode.c 		sbi->s_version = MINIX_V1;
sbi               192 fs/minix/inode.c 		sbi->s_dirsize = 16;
sbi               193 fs/minix/inode.c 		sbi->s_namelen = 14;
sbi               196 fs/minix/inode.c 		sbi->s_version = MINIX_V1;
sbi               197 fs/minix/inode.c 		sbi->s_dirsize = 32;
sbi               198 fs/minix/inode.c 		sbi->s_namelen = 30;
sbi               201 fs/minix/inode.c 		sbi->s_version = MINIX_V2;
sbi               202 fs/minix/inode.c 		sbi->s_nzones = ms->s_zones;
sbi               203 fs/minix/inode.c 		sbi->s_dirsize = 16;
sbi               204 fs/minix/inode.c 		sbi->s_namelen = 14;
sbi               207 fs/minix/inode.c 		sbi->s_version = MINIX_V2;
sbi               208 fs/minix/inode.c 		sbi->s_nzones = ms->s_zones;
sbi               209 fs/minix/inode.c 		sbi->s_dirsize = 32;
sbi               210 fs/minix/inode.c 		sbi->s_namelen = 30;
sbi               215 fs/minix/inode.c 		sbi->s_imap_blocks = m3s->s_imap_blocks;
sbi               216 fs/minix/inode.c 		sbi->s_zmap_blocks = m3s->s_zmap_blocks;
sbi               217 fs/minix/inode.c 		sbi->s_firstdatazone = m3s->s_firstdatazone;
sbi               218 fs/minix/inode.c 		sbi->s_log_zone_size = m3s->s_log_zone_size;
sbi               219 fs/minix/inode.c 		sbi->s_max_size = m3s->s_max_size;
sbi               220 fs/minix/inode.c 		sbi->s_ninodes = m3s->s_ninodes;
sbi               221 fs/minix/inode.c 		sbi->s_nzones = m3s->s_zones;
sbi               222 fs/minix/inode.c 		sbi->s_dirsize = 64;
sbi               223 fs/minix/inode.c 		sbi->s_namelen = 60;
sbi               224 fs/minix/inode.c 		sbi->s_version = MINIX_V3;
sbi               225 fs/minix/inode.c 		sbi->s_mount_state = MINIX_VALID_FS;
sbi               234 fs/minix/inode.c 	if (sbi->s_imap_blocks == 0 || sbi->s_zmap_blocks == 0)
sbi               236 fs/minix/inode.c 	i = (sbi->s_imap_blocks + sbi->s_zmap_blocks) * sizeof(bh);
sbi               240 fs/minix/inode.c 	sbi->s_imap = &map[0];
sbi               241 fs/minix/inode.c 	sbi->s_zmap = &map[sbi->s_imap_blocks];
sbi               244 fs/minix/inode.c 	for (i=0 ; i < sbi->s_imap_blocks ; i++) {
sbi               245 fs/minix/inode.c 		if (!(sbi->s_imap[i]=sb_bread(s, block)))
sbi               249 fs/minix/inode.c 	for (i=0 ; i < sbi->s_zmap_blocks ; i++) {
sbi               250 fs/minix/inode.c 		if (!(sbi->s_zmap[i]=sb_bread(s, block)))
sbi               255 fs/minix/inode.c 	minix_set_bit(0,sbi->s_imap[0]->b_data);
sbi               256 fs/minix/inode.c 	minix_set_bit(0,sbi->s_zmap[0]->b_data);
sbi               262 fs/minix/inode.c 	block = minix_blocks_needed(sbi->s_ninodes, s->s_blocksize);
sbi               263 fs/minix/inode.c 	if (sbi->s_imap_blocks < block) {
sbi               270 fs/minix/inode.c 			(sbi->s_nzones - sbi->s_firstdatazone + 1),
sbi               272 fs/minix/inode.c 	if (sbi->s_zmap_blocks < block) {
sbi               294 fs/minix/inode.c 		if (sbi->s_version != MINIX_V3) /* s_state is now out from V3 sb */
sbi               298 fs/minix/inode.c 	if (!(sbi->s_mount_state & MINIX_VALID_FS))
sbi               301 fs/minix/inode.c 	else if (sbi->s_mount_state & MINIX_ERROR_FS)
sbi               315 fs/minix/inode.c 	for (i = 0; i < sbi->s_imap_blocks; i++)
sbi               316 fs/minix/inode.c 		brelse(sbi->s_imap[i]);
sbi               317 fs/minix/inode.c 	for (i = 0; i < sbi->s_zmap_blocks; i++)
sbi               318 fs/minix/inode.c 		brelse(sbi->s_zmap[i]);
sbi               319 fs/minix/inode.c 	kfree(sbi->s_imap);
sbi               349 fs/minix/inode.c 	kfree(sbi);
sbi               356 fs/minix/inode.c 	struct minix_sb_info *sbi = minix_sb(sb);
sbi               360 fs/minix/inode.c 	buf->f_blocks = (sbi->s_nzones - sbi->s_firstdatazone) << sbi->s_log_zone_size;
sbi               363 fs/minix/inode.c 	buf->f_files = sbi->s_ninodes;
sbi               365 fs/minix/inode.c 	buf->f_namelen = sbi->s_namelen;
sbi                12 fs/omfs/bitmap.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi                15 fs/omfs/bitmap.c 	for (i = 0; i < sbi->s_imap_size; i++)
sbi                16 fs/omfs/bitmap.c 		sum += nbits - bitmap_weight(sbi->s_imap[i], nbits);
sbi                54 fs/omfs/bitmap.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi                57 fs/omfs/bitmap.c 	bh = sb_bread(sb, clus_to_blk(sbi, sbi->s_bitmap_ino) + map);
sbi                69 fs/omfs/bitmap.c 				clus_to_blk(sbi, sbi->s_bitmap_ino) + map);
sbi                74 fs/omfs/bitmap.c 			set_bit(bit, sbi->s_imap[map]);
sbi                77 fs/omfs/bitmap.c 			clear_bit(bit, sbi->s_imap[map]);
sbi                94 fs/omfs/bitmap.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               104 fs/omfs/bitmap.c 	mutex_lock(&sbi->s_bitmap_lock);
sbi               105 fs/omfs/bitmap.c 	if (map >= sbi->s_imap_size || test_and_set_bit(bit, sbi->s_imap[map]))
sbi               108 fs/omfs/bitmap.c 	if (sbi->s_bitmap_ino > 0) {
sbi               109 fs/omfs/bitmap.c 		bh = sb_bread(sb, clus_to_blk(sbi, sbi->s_bitmap_ino) + map);
sbi               119 fs/omfs/bitmap.c 	mutex_unlock(&sbi->s_bitmap_lock);
sbi               136 fs/omfs/bitmap.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               141 fs/omfs/bitmap.c 	mutex_lock(&sbi->s_bitmap_lock);
sbi               142 fs/omfs/bitmap.c 	for (i = 0; i < sbi->s_imap_size; i++) {
sbi               145 fs/omfs/bitmap.c 			bit = find_next_zero_bit(sbi->s_imap[i], bits_per_entry,
sbi               151 fs/omfs/bitmap.c 			run = count_run(&sbi->s_imap[i], bits_per_entry,
sbi               152 fs/omfs/bitmap.c 				sbi->s_imap_size-i, bit, max_request);
sbi               168 fs/omfs/bitmap.c 	mutex_unlock(&sbi->s_bitmap_lock);
sbi               177 fs/omfs/bitmap.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               187 fs/omfs/bitmap.c 	if (map >= sbi->s_imap_size)
sbi               190 fs/omfs/bitmap.c 	mutex_lock(&sbi->s_bitmap_lock);
sbi               192 fs/omfs/bitmap.c 	mutex_unlock(&sbi->s_bitmap_lock);
sbi                86 fs/omfs/dir.c  	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi                98 fs/omfs/dir.c  			sbi->s_sys_blocksize - OMFS_DIR_START);
sbi               315 fs/omfs/dir.c  int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,
sbi               320 fs/omfs/dir.c  	is_bad = ((ino != fsblock) || (ino < sbi->s_root_ino) ||
sbi               321 fs/omfs/dir.c  		(ino > sbi->s_num_blocks));
sbi                13 fs/omfs/file.c static u32 omfs_max_extents(struct omfs_sb_info *sbi, int offset)
sbi                15 fs/omfs/file.c 	return (sbi->s_sys_blocksize - offset -
sbi                33 fs/omfs/file.c 	struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb);
sbi                57 fs/omfs/file.c 	max_extents = omfs_max_extents(sbi, OMFS_EXTENT_START);
sbi                61 fs/omfs/file.c 		if (omfs_is_bad(sbi, (struct omfs_header *) bh->b_data, next))
sbi                87 fs/omfs/file.c 			omfs_clear_range(inode->i_sb, last, sbi->s_mirrors);
sbi                96 fs/omfs/file.c 		max_extents = omfs_max_extents(sbi, OMFS_EXTENT_CONT);
sbi               121 fs/omfs/file.c 	struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb);
sbi               155 fs/omfs/file.c 	max_count = omfs_max_extents(sbi, OMFS_EXTENT_START);
sbi               162 fs/omfs/file.c 	ret = omfs_allocate_range(inode->i_sb, 1, sbi->s_clustersize,
sbi               228 fs/omfs/file.c 	struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb);
sbi               238 fs/omfs/file.c 	max_extents = omfs_max_extents(sbi, OMFS_EXTENT_START);
sbi               243 fs/omfs/file.c 		if (omfs_is_bad(sbi, (struct omfs_header *) bh->b_data, next))
sbi               270 fs/omfs/file.c 		max_extents = omfs_max_extents(sbi, OMFS_EXTENT_CONT);
sbi               278 fs/omfs/file.c 					clus_to_blk(sbi, new_block));
sbi                26 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi                27 fs/omfs/inode.c 	if (block >= sbi->s_num_blocks)
sbi                30 fs/omfs/inode.c 	return sb_bread(sb, clus_to_blk(sbi, block));
sbi                39 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(dir->i_sb);
sbi                45 fs/omfs/inode.c 	err = omfs_allocate_range(dir->i_sb, sbi->s_mirrors, sbi->s_mirrors,
sbi                59 fs/omfs/inode.c 		inode->i_size = sbi->s_sys_blocksize;
sbi               105 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(inode->i_sb);
sbi               130 fs/omfs/inode.c 	oi->i_head.h_body_size = cpu_to_be32(sbi->s_sys_blocksize -
sbi               151 fs/omfs/inode.c 	for (i = 1; i < sbi->s_mirrors; i++) {
sbi               204 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               227 fs/omfs/inode.c 	inode->i_uid = sbi->s_uid;
sbi               228 fs/omfs/inode.c 	inode->i_gid = sbi->s_gid;
sbi               244 fs/omfs/inode.c 		inode->i_mode = S_IFDIR | (S_IRWXUGO & ~sbi->s_dmask);
sbi               247 fs/omfs/inode.c 		inode->i_size = sbi->s_sys_blocksize;
sbi               251 fs/omfs/inode.c 		inode->i_mode = S_IFREG | (S_IRWXUGO & ~sbi->s_fmask);
sbi               268 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               269 fs/omfs/inode.c 	kfree(sbi->s_imap);
sbi               270 fs/omfs/inode.c 	kfree(sbi);
sbi               277 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(s);
sbi               281 fs/omfs/inode.c 	buf->f_bsize = sbi->s_blocksize;
sbi               282 fs/omfs/inode.c 	buf->f_blocks = sbi->s_num_blocks;
sbi               283 fs/omfs/inode.c 	buf->f_files = sbi->s_num_blocks;
sbi               299 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(root->d_sb);
sbi               302 fs/omfs/inode.c 	if (!uid_eq(sbi->s_uid, current_uid()))
sbi               304 fs/omfs/inode.c 			   from_kuid_munged(&init_user_ns, sbi->s_uid));
sbi               305 fs/omfs/inode.c 	if (!gid_eq(sbi->s_gid, current_gid()))
sbi               307 fs/omfs/inode.c 			   from_kgid_munged(&init_user_ns, sbi->s_gid));
sbi               309 fs/omfs/inode.c 	if (sbi->s_dmask == sbi->s_fmask) {
sbi               310 fs/omfs/inode.c 		if (sbi->s_fmask != cur_umask)
sbi               311 fs/omfs/inode.c 			seq_printf(m, ",umask=%o", sbi->s_fmask);
sbi               313 fs/omfs/inode.c 		if (sbi->s_dmask != cur_umask)
sbi               314 fs/omfs/inode.c 			seq_printf(m, ",dmask=%o", sbi->s_dmask);
sbi               315 fs/omfs/inode.c 		if (sbi->s_fmask != cur_umask)
sbi               316 fs/omfs/inode.c 			seq_printf(m, ",fmask=%o", sbi->s_fmask);
sbi               341 fs/omfs/inode.c 	struct omfs_sb_info *sbi = OMFS_SB(sb);
sbi               346 fs/omfs/inode.c 	bitmap_size = DIV_ROUND_UP(sbi->s_num_blocks, 8);
sbi               349 fs/omfs/inode.c 	if (sbi->s_bitmap_ino == ~0ULL)
sbi               352 fs/omfs/inode.c 	sbi->s_imap_size = array_size;
sbi               353 fs/omfs/inode.c 	sbi->s_imap = kcalloc(array_size, sizeof(unsigned long *), GFP_KERNEL);
sbi               354 fs/omfs/inode.c 	if (!sbi->s_imap)
sbi               357 fs/omfs/inode.c 	block = clus_to_blk(sbi, sbi->s_bitmap_ino);
sbi               358 fs/omfs/inode.c 	if (block >= sbi->s_num_blocks)
sbi               361 fs/omfs/inode.c 	ptr = sbi->s_imap;
sbi               383 fs/omfs/inode.c 		kfree(sbi->s_imap[count]);
sbi               385 fs/omfs/inode.c 	kfree(sbi->s_imap);
sbi               387 fs/omfs/inode.c 	sbi->s_imap = NULL;
sbi               388 fs/omfs/inode.c 	sbi->s_imap_size = 0;
sbi               405 fs/omfs/inode.c static int parse_options(char *options, struct omfs_sb_info *sbi)
sbi               424 fs/omfs/inode.c 			sbi->s_uid = make_kuid(current_user_ns(), option);
sbi               425 fs/omfs/inode.c 			if (!uid_valid(sbi->s_uid))
sbi               431 fs/omfs/inode.c 			sbi->s_gid = make_kgid(current_user_ns(), option);
sbi               432 fs/omfs/inode.c 			if (!gid_valid(sbi->s_gid))
sbi               438 fs/omfs/inode.c 			sbi->s_fmask = sbi->s_dmask = option;
sbi               443 fs/omfs/inode.c 			sbi->s_dmask = option;
sbi               448 fs/omfs/inode.c 			sbi->s_fmask = option;
sbi               462 fs/omfs/inode.c 	struct omfs_sb_info *sbi;
sbi               466 fs/omfs/inode.c 	sbi = kzalloc(sizeof(struct omfs_sb_info), GFP_KERNEL);
sbi               467 fs/omfs/inode.c 	if (!sbi)
sbi               470 fs/omfs/inode.c 	sb->s_fs_info = sbi;
sbi               472 fs/omfs/inode.c 	sbi->s_uid = current_uid();
sbi               473 fs/omfs/inode.c 	sbi->s_gid = current_gid();
sbi               474 fs/omfs/inode.c 	sbi->s_dmask = sbi->s_fmask = current_umask();
sbi               476 fs/omfs/inode.c 	if (!parse_options((char *) data, sbi))
sbi               501 fs/omfs/inode.c 	sbi->s_num_blocks = be64_to_cpu(omfs_sb->s_num_blocks);
sbi               502 fs/omfs/inode.c 	sbi->s_blocksize = be32_to_cpu(omfs_sb->s_blocksize);
sbi               503 fs/omfs/inode.c 	sbi->s_mirrors = be32_to_cpu(omfs_sb->s_mirrors);
sbi               504 fs/omfs/inode.c 	sbi->s_root_ino = be64_to_cpu(omfs_sb->s_root_block);
sbi               505 fs/omfs/inode.c 	sbi->s_sys_blocksize = be32_to_cpu(omfs_sb->s_sys_blocksize);
sbi               506 fs/omfs/inode.c 	mutex_init(&sbi->s_bitmap_lock);
sbi               508 fs/omfs/inode.c 	if (sbi->s_num_blocks > OMFS_MAX_BLOCKS) {
sbi               510 fs/omfs/inode.c 		       (unsigned long long)sbi->s_num_blocks);
sbi               514 fs/omfs/inode.c 	if (sbi->s_sys_blocksize > PAGE_SIZE) {
sbi               516 fs/omfs/inode.c 			sbi->s_sys_blocksize);
sbi               520 fs/omfs/inode.c 	if (sbi->s_blocksize < sbi->s_sys_blocksize ||
sbi               521 fs/omfs/inode.c 	    sbi->s_blocksize > OMFS_MAX_BLOCK_SIZE) {
sbi               523 fs/omfs/inode.c 			sbi->s_blocksize);
sbi               531 fs/omfs/inode.c 	sb_set_blocksize(sb, sbi->s_sys_blocksize);
sbi               537 fs/omfs/inode.c 	sbi->s_block_shift = get_bitmask_order(sbi->s_blocksize) -
sbi               538 fs/omfs/inode.c 		get_bitmask_order(sbi->s_sys_blocksize);
sbi               546 fs/omfs/inode.c 	sbi->s_bitmap_ino = be64_to_cpu(omfs_rb->r_bitmap);
sbi               547 fs/omfs/inode.c 	sbi->s_clustersize = be32_to_cpu(omfs_rb->r_clustersize);
sbi               549 fs/omfs/inode.c 	if (sbi->s_num_blocks != be64_to_cpu(omfs_rb->r_num_blocks)) {
sbi               552 fs/omfs/inode.c 			(unsigned long long)sbi->s_num_blocks,
sbi               557 fs/omfs/inode.c 	if (sbi->s_bitmap_ino != ~0ULL &&
sbi               558 fs/omfs/inode.c 	    sbi->s_bitmap_ino > sbi->s_num_blocks) {
sbi               561 fs/omfs/inode.c 			(unsigned long long) sbi->s_bitmap_ino,
sbi               562 fs/omfs/inode.c 			(unsigned long long) sbi->s_num_blocks);
sbi               565 fs/omfs/inode.c 	if (sbi->s_clustersize < 1 ||
sbi               566 fs/omfs/inode.c 	    sbi->s_clustersize > OMFS_MAX_CLUSTER_SIZE) {
sbi               568 fs/omfs/inode.c 			sbi->s_clustersize);
sbi               598 fs/omfs/inode.c 		kfree(sbi);
sbi                30 fs/omfs/omfs.h static inline sector_t clus_to_blk(struct omfs_sb_info *sbi, sector_t block)
sbi                32 fs/omfs/omfs.h 	return block << sbi->s_block_shift;
sbi                51 fs/omfs/omfs.h extern int omfs_is_bad(struct omfs_sb_info *sbi, struct omfs_header *header,
sbi                49 fs/qnx6/dir.c  	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi                50 fs/qnx6/dir.c  	u32 s = fs32_to_cpu(sbi, de->de_long_inode); /* in block units */
sbi                54 fs/qnx6/dir.c  	struct address_space *mapping = sbi->longfile->i_mapping;
sbi                69 fs/qnx6/dir.c  	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi                85 fs/qnx6/dir.c  	lf_size = fs16_to_cpu(sbi, lf->lf_size);
sbi                96 fs/qnx6/dir.c  	if (!test_opt(s, MMI_FS) && fs32_to_cpu(sbi, de->de_checksum) !=
sbi               116 fs/qnx6/dir.c  	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               141 fs/qnx6/dir.c  			u32 no_inode = fs32_to_cpu(sbi, de->de_inode);
sbi               179 fs/qnx6/dir.c  	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               187 fs/qnx6/dir.c  	thislen = fs16_to_cpu(sbi, lf->lf_size);
sbi               194 fs/qnx6/dir.c  		return fs32_to_cpu(sbi, de->de_inode);
sbi               206 fs/qnx6/dir.c  	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               208 fs/qnx6/dir.c  		return fs32_to_cpu(sbi, de->de_inode);
sbi                50 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi                52 fs/qnx6/inode.c 	if (sbi->s_mount_opt & QNX6_MOUNT_MMI_FS)
sbi                66 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi                67 fs/qnx6/inode.c 	return fs32_to_cpu(sbi, block) + sbi->s_blks_off;
sbi               115 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               121 fs/qnx6/inode.c 	int ptrbits = sbi->s_ptrbits;
sbi               159 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi               164 fs/qnx6/inode.c 	buf->f_blocks  = fs32_to_cpu(sbi, sbi->sb->sb_num_blocks);
sbi               165 fs/qnx6/inode.c 	buf->f_bfree   = fs32_to_cpu(sbi, sbi->sb->sb_free_blocks);
sbi               166 fs/qnx6/inode.c 	buf->f_files   = fs32_to_cpu(sbi, sbi->sb->sb_num_inodes);
sbi               167 fs/qnx6/inode.c 	buf->f_ffree   = fs32_to_cpu(sbi, sbi->sb->sb_free_inodes);
sbi               207 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               209 fs/qnx6/inode.c 	pr_debug("magic: %08x\n", fs32_to_cpu(sbi, sb->sb_magic));
sbi               210 fs/qnx6/inode.c 	pr_debug("checksum: %08x\n", fs32_to_cpu(sbi, sb->sb_checksum));
sbi               211 fs/qnx6/inode.c 	pr_debug("serial: %llx\n", fs64_to_cpu(sbi, sb->sb_serial));
sbi               212 fs/qnx6/inode.c 	pr_debug("flags: %08x\n", fs32_to_cpu(sbi, sb->sb_flags));
sbi               213 fs/qnx6/inode.c 	pr_debug("blocksize: %08x\n", fs32_to_cpu(sbi, sb->sb_blocksize));
sbi               214 fs/qnx6/inode.c 	pr_debug("num_inodes: %08x\n", fs32_to_cpu(sbi, sb->sb_num_inodes));
sbi               215 fs/qnx6/inode.c 	pr_debug("free_inodes: %08x\n", fs32_to_cpu(sbi, sb->sb_free_inodes));
sbi               216 fs/qnx6/inode.c 	pr_debug("num_blocks: %08x\n", fs32_to_cpu(sbi, sb->sb_num_blocks));
sbi               217 fs/qnx6/inode.c 	pr_debug("free_blocks: %08x\n", fs32_to_cpu(sbi, sb->sb_free_blocks));
sbi               235 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi               249 fs/qnx6/inode.c 			set_opt(sbi->s_mount_opt, MMI_FS);
sbi               261 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               273 fs/qnx6/inode.c 	if (fs32_to_cpu(sbi, sb->sb_magic) != QNX6_SUPER_MAGIC) {
sbi               274 fs/qnx6/inode.c 		sbi->s_bytesex = BYTESEX_BE;
sbi               275 fs/qnx6/inode.c 		if (fs32_to_cpu(sbi, sb->sb_magic) == QNX6_SUPER_MAGIC) {
sbi               280 fs/qnx6/inode.c 			sbi->s_bytesex = BYTESEX_LE;
sbi               302 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi;
sbi               333 fs/qnx6/inode.c 	sbi = QNX6_SB(s);
sbi               334 fs/qnx6/inode.c 	sbi->s_bytesex = BYTESEX_LE;
sbi               356 fs/qnx6/inode.c 	if (fs32_to_cpu(sbi, sb1->sb_checksum) !=
sbi               363 fs/qnx6/inode.c 	if (!sb_set_blocksize(s, fs32_to_cpu(sbi, sb1->sb_blocksize))) {
sbi               375 fs/qnx6/inode.c 	offset = fs32_to_cpu(sbi, sb1->sb_num_blocks) +
sbi               380 fs/qnx6/inode.c 	sbi->s_blks_off = (bootblock_offset >> s->s_blocksize_bits) +
sbi               390 fs/qnx6/inode.c 	if (fs32_to_cpu(sbi, sb2->sb_magic) != QNX6_SUPER_MAGIC) {
sbi               397 fs/qnx6/inode.c 	if (fs32_to_cpu(sbi, sb2->sb_checksum) !=
sbi               403 fs/qnx6/inode.c 	if (fs64_to_cpu(sbi, sb1->sb_serial) >=
sbi               404 fs/qnx6/inode.c 					fs64_to_cpu(sbi, sb2->sb_serial)) {
sbi               406 fs/qnx6/inode.c 		sbi->sb_buf = bh1;
sbi               407 fs/qnx6/inode.c 		sbi->sb = (struct qnx6_super_block *)bh1->b_data;
sbi               412 fs/qnx6/inode.c 		sbi->sb_buf = bh2;
sbi               413 fs/qnx6/inode.c 		sbi->sb = (struct qnx6_super_block *)bh2->b_data;
sbi               436 fs/qnx6/inode.c 	sbi = QNX6_SB(s);
sbi               437 fs/qnx6/inode.c 	sbi->s_ptrbits = ilog2(s->s_blocksize / 4);
sbi               438 fs/qnx6/inode.c 	sbi->inodes = qnx6_private_inode(s, &sb1->Inode);
sbi               439 fs/qnx6/inode.c 	if (!sbi->inodes)
sbi               441 fs/qnx6/inode.c 	sbi->longfile = qnx6_private_inode(s, &sb1->Longfile);
sbi               442 fs/qnx6/inode.c 	if (!sbi->longfile)
sbi               471 fs/qnx6/inode.c 	iput(sbi->longfile);
sbi               473 fs/qnx6/inode.c 	iput(sbi->inodes);
sbi               512 fs/qnx6/inode.c 		struct qnx6_sb_info *sbi = QNX6_SB(s);
sbi               513 fs/qnx6/inode.c 		inode->i_size = fs64_to_cpu(sbi, p->size);
sbi               524 fs/qnx6/inode.c 	struct qnx6_sb_info *sbi = QNX6_SB(sb);
sbi               550 fs/qnx6/inode.c 	mapping = sbi->inodes->i_mapping;
sbi               561 fs/qnx6/inode.c 	inode->i_mode    = fs16_to_cpu(sbi, raw_inode->di_mode);
sbi               562 fs/qnx6/inode.c 	i_uid_write(inode, (uid_t)fs32_to_cpu(sbi, raw_inode->di_uid));
sbi               563 fs/qnx6/inode.c 	i_gid_write(inode, (gid_t)fs32_to_cpu(sbi, raw_inode->di_gid));
sbi               564 fs/qnx6/inode.c 	inode->i_size    = fs64_to_cpu(sbi, raw_inode->di_size);
sbi               565 fs/qnx6/inode.c 	inode->i_mtime.tv_sec   = fs32_to_cpu(sbi, raw_inode->di_mtime);
sbi               567 fs/qnx6/inode.c 	inode->i_atime.tv_sec   = fs32_to_cpu(sbi, raw_inode->di_atime);
sbi               569 fs/qnx6/inode.c 	inode->i_ctime.tv_sec   = fs32_to_cpu(sbi, raw_inode->di_ctime);
sbi                78 fs/qnx6/qnx6.h static inline __u64 fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
sbi                80 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi                86 fs/qnx6/qnx6.h static inline __fs64 cpu_to_fs64(struct qnx6_sb_info *sbi, __u64 n)
sbi                88 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi                94 fs/qnx6/qnx6.h static inline __u32 fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
sbi                96 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi               102 fs/qnx6/qnx6.h static inline __fs32 cpu_to_fs32(struct qnx6_sb_info *sbi, __u32 n)
sbi               104 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi               110 fs/qnx6/qnx6.h static inline __u16 fs16_to_cpu(struct qnx6_sb_info *sbi, __fs16 n)
sbi               112 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi               118 fs/qnx6/qnx6.h static inline __fs16 cpu_to_fs16(struct qnx6_sb_info *sbi, __u16 n)
sbi               120 fs/qnx6/qnx6.h 	if (sbi->s_bytesex == BYTESEX_LE)
sbi                41 fs/qnx6/super_mmi.c 	struct qnx6_sb_info *sbi;
sbi                52 fs/qnx6/super_mmi.c 	sbi = QNX6_SB(s);
sbi                53 fs/qnx6/super_mmi.c 	if (fs32_to_cpu(sbi, sb1->sb_magic) != QNX6_SUPER_MAGIC) {
sbi                61 fs/qnx6/super_mmi.c 	if (fs32_to_cpu(sbi, sb1->sb_checksum) !=
sbi                68 fs/qnx6/super_mmi.c 	offset = fs32_to_cpu(sbi, sb1->sb_num_blocks) + QNX6_SUPERBLOCK_AREA /
sbi                69 fs/qnx6/super_mmi.c 					fs32_to_cpu(sbi, sb1->sb_blocksize);
sbi                72 fs/qnx6/super_mmi.c 	if (!sb_set_blocksize(s, fs32_to_cpu(sbi, sb1->sb_blocksize))) {
sbi                90 fs/qnx6/super_mmi.c 	if (fs32_to_cpu(sbi, sb2->sb_magic) != QNX6_SUPER_MAGIC) {
sbi                97 fs/qnx6/super_mmi.c 	if (fs32_to_cpu(sbi, sb2->sb_checksum)
sbi               109 fs/qnx6/super_mmi.c 	if (fs64_to_cpu(sbi, sb1->sb_serial) >
sbi               110 fs/qnx6/super_mmi.c 					fs64_to_cpu(sbi, sb2->sb_serial)) {
sbi               118 fs/qnx6/super_mmi.c 		sbi->sb_buf = bh1;
sbi               119 fs/qnx6/super_mmi.c 		sbi->sb = (struct qnx6_super_block *)bh1->b_data;
sbi               130 fs/qnx6/super_mmi.c 		sbi->sb_buf = bh2;
sbi               131 fs/qnx6/super_mmi.c 		sbi->sb = (struct qnx6_super_block *)bh2->b_data;
sbi               138 fs/qnx6/super_mmi.c 	sbi->s_blks_off = QNX6_SUPERBLOCK_AREA / s->s_blocksize;
sbi               141 fs/qnx6/super_mmi.c 	return sbi->sb;
sbi                86 fs/reiserfs/super.c 	struct reiserfs_sb_info *sbi;
sbi                89 fs/reiserfs/super.c 	sbi = container_of(work, struct reiserfs_sb_info, old_work.work);
sbi                90 fs/reiserfs/super.c 	s = sbi->s_journal->j_work_sb;
sbi                99 fs/reiserfs/super.c 		spin_lock(&sbi->old_work_lock);
sbi               100 fs/reiserfs/super.c 		if (sbi->work_queued == 1)
sbi               101 fs/reiserfs/super.c 			queue_delayed_work(system_long_wq, &sbi->old_work, HZ);
sbi               102 fs/reiserfs/super.c 		spin_unlock(&sbi->old_work_lock);
sbi               105 fs/reiserfs/super.c 	spin_lock(&sbi->old_work_lock);
sbi               107 fs/reiserfs/super.c 	if (sbi->work_queued == 1)
sbi               108 fs/reiserfs/super.c 		sbi->work_queued = 0;
sbi               109 fs/reiserfs/super.c 	spin_unlock(&sbi->old_work_lock);
sbi               117 fs/reiserfs/super.c 	struct reiserfs_sb_info *sbi = REISERFS_SB(s);
sbi               127 fs/reiserfs/super.c 	spin_lock(&sbi->old_work_lock);
sbi               128 fs/reiserfs/super.c 	if (!sbi->work_queued) {
sbi               130 fs/reiserfs/super.c 		queue_delayed_work(system_long_wq, &sbi->old_work, delay);
sbi               131 fs/reiserfs/super.c 		sbi->work_queued = 1;
sbi               133 fs/reiserfs/super.c 	spin_unlock(&sbi->old_work_lock);
sbi               138 fs/reiserfs/super.c 	struct reiserfs_sb_info *sbi = REISERFS_SB(s);
sbi               140 fs/reiserfs/super.c 	spin_lock(&sbi->old_work_lock);
sbi               142 fs/reiserfs/super.c 	sbi->work_queued = 2;
sbi               143 fs/reiserfs/super.c 	spin_unlock(&sbi->old_work_lock);
sbi               172 fs/reiserfs/super.c 	struct reiserfs_sb_info *sbi = REISERFS_SB(s);
sbi               175 fs/reiserfs/super.c 	spin_lock(&sbi->old_work_lock);
sbi               177 fs/reiserfs/super.c 	sbi->work_queued = 0;
sbi               178 fs/reiserfs/super.c 	spin_unlock(&sbi->old_work_lock);
sbi              1907 fs/reiserfs/super.c 	struct reiserfs_sb_info *sbi;
sbi              1912 fs/reiserfs/super.c 	sbi = kzalloc(sizeof(struct reiserfs_sb_info), GFP_KERNEL);
sbi              1913 fs/reiserfs/super.c 	if (!sbi)
sbi              1915 fs/reiserfs/super.c 	s->s_fs_info = sbi;
sbi              1917 fs/reiserfs/super.c 	sbi->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
sbi              1918 fs/reiserfs/super.c 	sbi->s_mount_opt |= (1 << REISERFS_ERROR_RO);
sbi              1919 fs/reiserfs/super.c 	sbi->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
sbi              1921 fs/reiserfs/super.c 	sbi->s_alloc_options.preallocmin = 0;
sbi              1923 fs/reiserfs/super.c 	sbi->s_alloc_options.preallocsize = 17;
sbi              1927 fs/reiserfs/super.c 	spin_lock_init(&sbi->old_work_lock);
sbi              1928 fs/reiserfs/super.c 	INIT_DELAYED_WORK(&sbi->old_work, flush_old_commits);
sbi              1929 fs/reiserfs/super.c 	mutex_init(&sbi->lock);
sbi              1930 fs/reiserfs/super.c 	sbi->lock_depth = -1;
sbi              1932 fs/reiserfs/super.c 	sbi->commit_wq = alloc_workqueue("reiserfs/%s", WQ_MEM_RECLAIM, 0,
sbi              1934 fs/reiserfs/super.c 	if (!sbi->commit_wq) {
sbi              1942 fs/reiserfs/super.c 	    (s, (char *)data, &sbi->s_mount_opt, &blocks, &jdev_name,
sbi              1947 fs/reiserfs/super.c 		sbi->s_jdev = kstrdup(jdev_name, GFP_KERNEL);
sbi              1948 fs/reiserfs/super.c 		if (!sbi->s_jdev) {
sbi              2001 fs/reiserfs/super.c 	sbi->s_mount_state = SB_REISERFS_STATE(s);
sbi              2002 fs/reiserfs/super.c 	sbi->s_mount_state = REISERFS_VALID_FS;
sbi              2018 fs/reiserfs/super.c 		sbi->s_mount_opt |= (1 << REISERFS_DATA_ORDERED);
sbi              2089 fs/reiserfs/super.c 	sbi->s_hash_function = hash_function(s);
sbi              2090 fs/reiserfs/super.c 	if (sbi->s_hash_function == NULL) {
sbi              2098 fs/reiserfs/super.c 		set_bit(REISERFS_3_5, &sbi->s_properties);
sbi              2100 fs/reiserfs/super.c 		set_bit(REISERFS_OLD_FORMAT, &sbi->s_properties);
sbi              2102 fs/reiserfs/super.c 		set_bit(REISERFS_3_6, &sbi->s_properties);
sbi              2158 fs/reiserfs/super.c 				set_bit(REISERFS_3_6, &sbi->s_properties);
sbi              2159 fs/reiserfs/super.c 				clear_bit(REISERFS_3_5, &sbi->s_properties);
sbi              2205 fs/reiserfs/super.c 	set_sb_hash_function_code(rs, function2code(sbi->s_hash_function));
sbi              2211 fs/reiserfs/super.c 	init_waitqueue_head(&(sbi->s_wait));
sbi              2212 fs/reiserfs/super.c 	spin_lock_init(&sbi->bitmap_lock);
sbi              2229 fs/reiserfs/super.c 	if (sbi->commit_wq)
sbi              2230 fs/reiserfs/super.c 		destroy_workqueue(sbi->commit_wq);
sbi              2244 fs/reiserfs/super.c 	kfree(sbi->s_jdev);
sbi              2245 fs/reiserfs/super.c 	kfree(sbi);
sbi               393 fs/squashfs/super.c 		struct squashfs_sb_info *sbi = sb->s_fs_info;
sbi               394 fs/squashfs/super.c 		squashfs_cache_delete(sbi->block_cache);
sbi               395 fs/squashfs/super.c 		squashfs_cache_delete(sbi->fragment_cache);
sbi               396 fs/squashfs/super.c 		squashfs_cache_delete(sbi->read_page);
sbi               397 fs/squashfs/super.c 		squashfs_decompressor_destroy(sbi);
sbi               398 fs/squashfs/super.c 		kfree(sbi->id_table);
sbi               399 fs/squashfs/super.c 		kfree(sbi->fragment_index);
sbi               400 fs/squashfs/super.c 		kfree(sbi->meta_index);
sbi               401 fs/squashfs/super.c 		kfree(sbi->inode_lookup_table);
sbi               402 fs/squashfs/super.c 		kfree(sbi->xattr_id_table);
sbi                45 fs/sysv/balloc.c 	struct sysv_sb_info * sbi = SYSV_SB(sb);
sbi                47 fs/sysv/balloc.c 	sysv_zone_t *blocks = sbi->s_bcache;
sbi                49 fs/sysv/balloc.c 	unsigned block = fs32_to_cpu(sbi, nr);
sbi                56 fs/sysv/balloc.c 	if (sbi->s_type == FSTYPE_AFS)
sbi                59 fs/sysv/balloc.c 	if (block < sbi->s_firstdatazone || block >= sbi->s_nzones) {
sbi                64 fs/sysv/balloc.c 	mutex_lock(&sbi->s_lock);
sbi                65 fs/sysv/balloc.c 	count = fs16_to_cpu(sbi, *sbi->s_bcache_count);
sbi                67 fs/sysv/balloc.c 	if (count > sbi->s_flc_size) {
sbi                69 fs/sysv/balloc.c 		mutex_unlock(&sbi->s_lock);
sbi                76 fs/sysv/balloc.c 	if (count == sbi->s_flc_size || count == 0) {
sbi                77 fs/sysv/balloc.c 		block += sbi->s_block_base;
sbi                81 fs/sysv/balloc.c 			mutex_unlock(&sbi->s_lock);
sbi                85 fs/sysv/balloc.c 		*(__fs16*)bh->b_data = cpu_to_fs16(sbi, count);
sbi                92 fs/sysv/balloc.c 	sbi->s_bcache[count++] = nr;
sbi                94 fs/sysv/balloc.c 	*sbi->s_bcache_count = cpu_to_fs16(sbi, count);
sbi                95 fs/sysv/balloc.c 	fs32_add(sbi, sbi->s_free_blocks, 1);
sbi                97 fs/sysv/balloc.c 	mutex_unlock(&sbi->s_lock);
sbi               102 fs/sysv/balloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               108 fs/sysv/balloc.c 	mutex_lock(&sbi->s_lock);
sbi               109 fs/sysv/balloc.c 	count = fs16_to_cpu(sbi, *sbi->s_bcache_count);
sbi               113 fs/sysv/balloc.c 	nr = sbi->s_bcache[--count];
sbi               117 fs/sysv/balloc.c 	block = fs32_to_cpu(sbi, nr);
sbi               119 fs/sysv/balloc.c 	*sbi->s_bcache_count = cpu_to_fs16(sbi, count);
sbi               121 fs/sysv/balloc.c 	if (block < sbi->s_firstdatazone || block >= sbi->s_nzones) {
sbi               130 fs/sysv/balloc.c 		block += sbi->s_block_base;
sbi               134 fs/sysv/balloc.c 			*sbi->s_bcache_count = cpu_to_fs16(sbi, 1);
sbi               137 fs/sysv/balloc.c 		count = fs16_to_cpu(sbi, *(__fs16*)bh->b_data);
sbi               138 fs/sysv/balloc.c 		if (count > sbi->s_flc_size) {
sbi               143 fs/sysv/balloc.c 		*sbi->s_bcache_count = cpu_to_fs16(sbi, count);
sbi               144 fs/sysv/balloc.c 		memcpy(sbi->s_bcache, get_chunk(sb, bh),
sbi               149 fs/sysv/balloc.c 	fs32_add(sbi, sbi->s_free_blocks, -1);
sbi               151 fs/sysv/balloc.c 	mutex_unlock(&sbi->s_lock);
sbi               155 fs/sysv/balloc.c 	mutex_unlock(&sbi->s_lock);
sbi               161 fs/sysv/balloc.c 	struct sysv_sb_info * sbi = SYSV_SB(sb);
sbi               174 fs/sysv/balloc.c 	if (sbi->s_type == FSTYPE_AFS)
sbi               177 fs/sysv/balloc.c 	mutex_lock(&sbi->s_lock);
sbi               178 fs/sysv/balloc.c 	sb_count = fs32_to_cpu(sbi, *sbi->s_free_blocks);
sbi               185 fs/sysv/balloc.c 	n = fs16_to_cpu(sbi, *sbi->s_bcache_count);
sbi               186 fs/sysv/balloc.c 	blocks = sbi->s_bcache;
sbi               189 fs/sysv/balloc.c 		if (n > sbi->s_flc_size)
sbi               197 fs/sysv/balloc.c 		block = fs32_to_cpu(sbi, zone);
sbi               201 fs/sysv/balloc.c 		if (block < sbi->s_firstdatazone || block >= sbi->s_nzones)
sbi               203 fs/sysv/balloc.c 		block += sbi->s_block_base;
sbi               207 fs/sysv/balloc.c 		n = fs16_to_cpu(sbi, *(__fs16*)bh->b_data);
sbi               215 fs/sysv/balloc.c 	mutex_unlock(&sbi->s_lock);
sbi               236 fs/sysv/balloc.c 		*sbi->s_free_blocks = cpu_to_fs32(sbi, count);
sbi                42 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                44 fs/sysv/ialloc.c 	if (sbi->s_bh1 == sbi->s_bh2)
sbi                45 fs/sysv/ialloc.c 		return &sbi->s_sb_fic_inodes[i];
sbi                50 fs/sysv/ialloc.c 			return (sysv_ino_t*)(sbi->s_sbd1 + offset);
sbi                52 fs/sysv/ialloc.c 			return (sysv_ino_t*)(sbi->s_sbd2 + offset);
sbi                59 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                61 fs/sysv/ialloc.c 	int block = sbi->s_firstinodezone + sbi->s_block_base;
sbi                63 fs/sysv/ialloc.c 	block += (ino-1) >> sbi->s_inodes_per_block_bits;
sbi                68 fs/sysv/ialloc.c 	return res + ((ino-1) & sbi->s_inodes_per_block_1);
sbi                73 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                82 fs/sysv/ialloc.c 	while (ino <= sbi->s_ninodes) {
sbi                85 fs/sysv/ialloc.c 			if (i == sbi->s_fic_size)
sbi                88 fs/sysv/ialloc.c 		if ((ino++ & sbi->s_inodes_per_block_1) == 0) {
sbi               104 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               112 fs/sysv/ialloc.c 	if (ino <= SYSV_ROOT_INO || ino > sbi->s_ninodes) {
sbi               122 fs/sysv/ialloc.c 	mutex_lock(&sbi->s_lock);
sbi               123 fs/sysv/ialloc.c 	count = fs16_to_cpu(sbi, *sbi->s_sb_fic_count);
sbi               124 fs/sysv/ialloc.c 	if (count < sbi->s_fic_size) {
sbi               125 fs/sysv/ialloc.c 		*sv_sb_fic_inode(sb,count++) = cpu_to_fs16(sbi, ino);
sbi               126 fs/sysv/ialloc.c 		*sbi->s_sb_fic_count = cpu_to_fs16(sbi, count);
sbi               128 fs/sysv/ialloc.c 	fs16_add(sbi, sbi->s_sb_total_free_inodes, 1);
sbi               132 fs/sysv/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               139 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               151 fs/sysv/ialloc.c 	mutex_lock(&sbi->s_lock);
sbi               152 fs/sysv/ialloc.c 	count = fs16_to_cpu(sbi, *sbi->s_sb_fic_count);
sbi               157 fs/sysv/ialloc.c 			mutex_unlock(&sbi->s_lock);
sbi               163 fs/sysv/ialloc.c 	*sbi->s_sb_fic_count = cpu_to_fs16(sbi, count);
sbi               164 fs/sysv/ialloc.c 	fs16_add(sbi, sbi->s_sb_total_free_inodes, -1);
sbi               167 fs/sysv/ialloc.c 	inode->i_ino = fs16_to_cpu(sbi, ino);
sbi               178 fs/sysv/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               184 fs/sysv/ialloc.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               189 fs/sysv/ialloc.c 	mutex_lock(&sbi->s_lock);
sbi               191 fs/sysv/ialloc.c 	sb_count = fs16_to_cpu(sbi, *sbi->s_sb_total_free_inodes);
sbi               202 fs/sysv/ialloc.c 	while (ino <= sbi->s_ninodes) {
sbi               205 fs/sysv/ialloc.c 		if ((ino++ & sbi->s_inodes_per_block_1) == 0) {
sbi               217 fs/sysv/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               225 fs/sysv/ialloc.c 		*sbi->s_sb_total_free_inodes = cpu_to_fs16(SYSV_SB(sb), count);
sbi                37 fs/sysv/inode.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                40 fs/sysv/inode.c 	mutex_lock(&sbi->s_lock);
sbi                47 fs/sysv/inode.c 	old_time = fs32_to_cpu(sbi, *sbi->s_sb_time);
sbi                48 fs/sysv/inode.c 	if (sbi->s_type == FSTYPE_SYSV4) {
sbi                49 fs/sysv/inode.c 		if (*sbi->s_sb_state == cpu_to_fs32(sbi, 0x7c269d38u - old_time))
sbi                50 fs/sysv/inode.c 			*sbi->s_sb_state = cpu_to_fs32(sbi, 0x7c269d38u - time);
sbi                51 fs/sysv/inode.c 		*sbi->s_sb_time = cpu_to_fs32(sbi, time);
sbi                52 fs/sysv/inode.c 		mark_buffer_dirty(sbi->s_bh2);
sbi                55 fs/sysv/inode.c 	mutex_unlock(&sbi->s_lock);
sbi                62 fs/sysv/inode.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                65 fs/sysv/inode.c 	if (sbi->s_forced_ro)
sbi                72 fs/sysv/inode.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                76 fs/sysv/inode.c 		mark_buffer_dirty(sbi->s_bh1);
sbi                77 fs/sysv/inode.c 		if (sbi->s_bh1 != sbi->s_bh2)
sbi                78 fs/sysv/inode.c 			mark_buffer_dirty(sbi->s_bh2);
sbi                81 fs/sysv/inode.c 	brelse(sbi->s_bh1);
sbi                82 fs/sysv/inode.c 	if (sbi->s_bh1 != sbi->s_bh2)
sbi                83 fs/sysv/inode.c 		brelse(sbi->s_bh2);
sbi                85 fs/sysv/inode.c 	kfree(sbi);
sbi                91 fs/sysv/inode.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                96 fs/sysv/inode.c 	buf->f_blocks = sbi->s_ndatazones;
sbi                98 fs/sysv/inode.c 	buf->f_files = sbi->s_ninodes;
sbi               109 fs/sysv/inode.c static inline void read3byte(struct sysv_sb_info *sbi,
sbi               112 fs/sysv/inode.c 	if (sbi->s_bytesex == BYTESEX_PDP) {
sbi               117 fs/sysv/inode.c 	} else if (sbi->s_bytesex == BYTESEX_LE) {
sbi               130 fs/sysv/inode.c static inline void write3byte(struct sysv_sb_info *sbi,
sbi               133 fs/sysv/inode.c 	if (sbi->s_bytesex == BYTESEX_PDP) {
sbi               137 fs/sysv/inode.c 	} else if (sbi->s_bytesex == BYTESEX_LE) {
sbi               173 fs/sysv/inode.c 	struct sysv_sb_info * sbi = SYSV_SB(sb);
sbi               180 fs/sysv/inode.c 	if (!ino || ino > sbi->s_ninodes) {
sbi               199 fs/sysv/inode.c 	inode->i_mode = fs16_to_cpu(sbi, raw_inode->i_mode);
sbi               200 fs/sysv/inode.c 	i_uid_write(inode, (uid_t)fs16_to_cpu(sbi, raw_inode->i_uid));
sbi               201 fs/sysv/inode.c 	i_gid_write(inode, (gid_t)fs16_to_cpu(sbi, raw_inode->i_gid));
sbi               202 fs/sysv/inode.c 	set_nlink(inode, fs16_to_cpu(sbi, raw_inode->i_nlink));
sbi               203 fs/sysv/inode.c 	inode->i_size = fs32_to_cpu(sbi, raw_inode->i_size);
sbi               204 fs/sysv/inode.c 	inode->i_atime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_atime);
sbi               205 fs/sysv/inode.c 	inode->i_mtime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_mtime);
sbi               206 fs/sysv/inode.c 	inode->i_ctime.tv_sec = fs32_to_cpu(sbi, raw_inode->i_ctime);
sbi               214 fs/sysv/inode.c 		read3byte(sbi, &raw_inode->i_data[3*block],
sbi               220 fs/sysv/inode.c 			       old_decode_dev(fs32_to_cpu(sbi, si->i_data[0])));
sbi               234 fs/sysv/inode.c 	struct sysv_sb_info * sbi = SYSV_SB(sb);
sbi               242 fs/sysv/inode.c 	if (!ino || ino > sbi->s_ninodes) {
sbi               253 fs/sysv/inode.c 	raw_inode->i_mode = cpu_to_fs16(sbi, inode->i_mode);
sbi               254 fs/sysv/inode.c 	raw_inode->i_uid = cpu_to_fs16(sbi, fs_high2lowuid(i_uid_read(inode)));
sbi               255 fs/sysv/inode.c 	raw_inode->i_gid = cpu_to_fs16(sbi, fs_high2lowgid(i_gid_read(inode)));
sbi               256 fs/sysv/inode.c 	raw_inode->i_nlink = cpu_to_fs16(sbi, inode->i_nlink);
sbi               257 fs/sysv/inode.c 	raw_inode->i_size = cpu_to_fs32(sbi, inode->i_size);
sbi               258 fs/sysv/inode.c 	raw_inode->i_atime = cpu_to_fs32(sbi, inode->i_atime.tv_sec);
sbi               259 fs/sysv/inode.c 	raw_inode->i_mtime = cpu_to_fs32(sbi, inode->i_mtime.tv_sec);
sbi               260 fs/sysv/inode.c 	raw_inode->i_ctime = cpu_to_fs32(sbi, inode->i_ctime.tv_sec);
sbi               264 fs/sysv/inode.c 		si->i_data[0] = cpu_to_fs32(sbi, old_encode_dev(inode->i_rdev));
sbi               266 fs/sysv/inode.c 		write3byte(sbi, (u8 *)&si->i_data[block],
sbi                26 fs/sysv/itree.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi                27 fs/sysv/itree.c 	int ptrs_bits = sbi->s_ind_per_block_bits;
sbi                28 fs/sysv/itree.c 	unsigned long	indirect_blocks = sbi->s_ind_per_block,
sbi                29 fs/sysv/itree.c 			double_blocks = sbi->s_ind_per_block_2;
sbi                54 fs/sysv/itree.c static inline int block_to_cpu(struct sysv_sb_info *sbi, sysv_zone_t nr)
sbi                56 fs/sysv/itree.c 	return sbi->s_block_base + fs32_to_cpu(sbi, nr);
sbi               431 fs/sysv/itree.c 	struct sysv_sb_info *sbi = SYSV_SB(s);
sbi               432 fs/sysv/itree.c 	int ptrs_bits = sbi->s_ind_per_block_bits;
sbi                48 fs/sysv/super.c static void detected_xenix(struct sysv_sb_info *sbi, unsigned *max_links)
sbi                50 fs/sysv/super.c 	struct buffer_head *bh1 = sbi->s_bh1;
sbi                51 fs/sysv/super.c 	struct buffer_head *bh2 = sbi->s_bh2;
sbi                64 fs/sysv/super.c 	sbi->s_fic_size = XENIX_NICINOD;
sbi                65 fs/sysv/super.c 	sbi->s_flc_size = XENIX_NICFREE;
sbi                66 fs/sysv/super.c 	sbi->s_sbd1 = (char *)sbd1;
sbi                67 fs/sysv/super.c 	sbi->s_sbd2 = (char *)sbd2;
sbi                68 fs/sysv/super.c 	sbi->s_sb_fic_count = &sbd1->s_ninode;
sbi                69 fs/sysv/super.c 	sbi->s_sb_fic_inodes = &sbd1->s_inode[0];
sbi                70 fs/sysv/super.c 	sbi->s_sb_total_free_inodes = &sbd2->s_tinode;
sbi                71 fs/sysv/super.c 	sbi->s_bcache_count = &sbd1->s_nfree;
sbi                72 fs/sysv/super.c 	sbi->s_bcache = &sbd1->s_free[0];
sbi                73 fs/sysv/super.c 	sbi->s_free_blocks = &sbd2->s_tfree;
sbi                74 fs/sysv/super.c 	sbi->s_sb_time = &sbd2->s_time;
sbi                75 fs/sysv/super.c 	sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd1->s_isize);
sbi                76 fs/sysv/super.c 	sbi->s_nzones = fs32_to_cpu(sbi, sbd1->s_fsize);
sbi                79 fs/sysv/super.c static void detected_sysv4(struct sysv_sb_info *sbi, unsigned *max_links)
sbi                82 fs/sysv/super.c 	struct buffer_head *bh1 = sbi->s_bh1;
sbi                83 fs/sysv/super.c 	struct buffer_head *bh2 = sbi->s_bh2;
sbi                91 fs/sysv/super.c 	sbi->s_fic_size = SYSV_NICINOD;
sbi                92 fs/sysv/super.c 	sbi->s_flc_size = SYSV_NICFREE;
sbi                93 fs/sysv/super.c 	sbi->s_sbd1 = (char *)sbd;
sbi                94 fs/sysv/super.c 	sbi->s_sbd2 = (char *)sbd;
sbi                95 fs/sysv/super.c 	sbi->s_sb_fic_count = &sbd->s_ninode;
sbi                96 fs/sysv/super.c 	sbi->s_sb_fic_inodes = &sbd->s_inode[0];
sbi                97 fs/sysv/super.c 	sbi->s_sb_total_free_inodes = &sbd->s_tinode;
sbi                98 fs/sysv/super.c 	sbi->s_bcache_count = &sbd->s_nfree;
sbi                99 fs/sysv/super.c 	sbi->s_bcache = &sbd->s_free[0];
sbi               100 fs/sysv/super.c 	sbi->s_free_blocks = &sbd->s_tfree;
sbi               101 fs/sysv/super.c 	sbi->s_sb_time = &sbd->s_time;
sbi               102 fs/sysv/super.c 	sbi->s_sb_state = &sbd->s_state;
sbi               103 fs/sysv/super.c 	sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
sbi               104 fs/sysv/super.c 	sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
sbi               107 fs/sysv/super.c static void detected_sysv2(struct sysv_sb_info *sbi, unsigned *max_links)
sbi               110 fs/sysv/super.c 	struct buffer_head *bh1 = sbi->s_bh1;
sbi               111 fs/sysv/super.c 	struct buffer_head *bh2 = sbi->s_bh2;
sbi               119 fs/sysv/super.c 	sbi->s_fic_size = SYSV_NICINOD;
sbi               120 fs/sysv/super.c 	sbi->s_flc_size = SYSV_NICFREE;
sbi               121 fs/sysv/super.c 	sbi->s_sbd1 = (char *)sbd;
sbi               122 fs/sysv/super.c 	sbi->s_sbd2 = (char *)sbd;
sbi               123 fs/sysv/super.c 	sbi->s_sb_fic_count = &sbd->s_ninode;
sbi               124 fs/sysv/super.c 	sbi->s_sb_fic_inodes = &sbd->s_inode[0];
sbi               125 fs/sysv/super.c 	sbi->s_sb_total_free_inodes = &sbd->s_tinode;
sbi               126 fs/sysv/super.c 	sbi->s_bcache_count = &sbd->s_nfree;
sbi               127 fs/sysv/super.c 	sbi->s_bcache = &sbd->s_free[0];
sbi               128 fs/sysv/super.c 	sbi->s_free_blocks = &sbd->s_tfree;
sbi               129 fs/sysv/super.c 	sbi->s_sb_time = &sbd->s_time;
sbi               130 fs/sysv/super.c 	sbi->s_sb_state = &sbd->s_state;
sbi               131 fs/sysv/super.c 	sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
sbi               132 fs/sysv/super.c 	sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
sbi               135 fs/sysv/super.c static void detected_coherent(struct sysv_sb_info *sbi, unsigned *max_links)
sbi               138 fs/sysv/super.c 	struct buffer_head *bh1 = sbi->s_bh1;
sbi               143 fs/sysv/super.c 	sbi->s_fic_size = COH_NICINOD;
sbi               144 fs/sysv/super.c 	sbi->s_flc_size = COH_NICFREE;
sbi               145 fs/sysv/super.c 	sbi->s_sbd1 = (char *)sbd;
sbi               146 fs/sysv/super.c 	sbi->s_sbd2 = (char *)sbd;
sbi               147 fs/sysv/super.c 	sbi->s_sb_fic_count = &sbd->s_ninode;
sbi               148 fs/sysv/super.c 	sbi->s_sb_fic_inodes = &sbd->s_inode[0];
sbi               149 fs/sysv/super.c 	sbi->s_sb_total_free_inodes = &sbd->s_tinode;
sbi               150 fs/sysv/super.c 	sbi->s_bcache_count = &sbd->s_nfree;
sbi               151 fs/sysv/super.c 	sbi->s_bcache = &sbd->s_free[0];
sbi               152 fs/sysv/super.c 	sbi->s_free_blocks = &sbd->s_tfree;
sbi               153 fs/sysv/super.c 	sbi->s_sb_time = &sbd->s_time;
sbi               154 fs/sysv/super.c 	sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
sbi               155 fs/sysv/super.c 	sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
sbi               158 fs/sysv/super.c static void detected_v7(struct sysv_sb_info *sbi, unsigned *max_links)
sbi               160 fs/sysv/super.c 	struct buffer_head *bh2 = sbi->s_bh2;
sbi               164 fs/sysv/super.c 	sbi->s_fic_size = V7_NICINOD;
sbi               165 fs/sysv/super.c 	sbi->s_flc_size = V7_NICFREE;
sbi               166 fs/sysv/super.c 	sbi->s_sbd1 = (char *)sbd;
sbi               167 fs/sysv/super.c 	sbi->s_sbd2 = (char *)sbd;
sbi               168 fs/sysv/super.c 	sbi->s_sb_fic_count = &sbd->s_ninode;
sbi               169 fs/sysv/super.c 	sbi->s_sb_fic_inodes = &sbd->s_inode[0];
sbi               170 fs/sysv/super.c 	sbi->s_sb_total_free_inodes = &sbd->s_tinode;
sbi               171 fs/sysv/super.c 	sbi->s_bcache_count = &sbd->s_nfree;
sbi               172 fs/sysv/super.c 	sbi->s_bcache = &sbd->s_free[0];
sbi               173 fs/sysv/super.c 	sbi->s_free_blocks = &sbd->s_tfree;
sbi               174 fs/sysv/super.c 	sbi->s_sb_time = &sbd->s_time;
sbi               175 fs/sysv/super.c 	sbi->s_firstdatazone = fs16_to_cpu(sbi, sbd->s_isize);
sbi               176 fs/sysv/super.c 	sbi->s_nzones = fs32_to_cpu(sbi, sbd->s_fsize);
sbi               179 fs/sysv/super.c static int detect_xenix(struct sysv_sb_info *sbi, struct buffer_head *bh)
sbi               183 fs/sysv/super.c 		sbi->s_bytesex = BYTESEX_LE;
sbi               185 fs/sysv/super.c 		sbi->s_bytesex = BYTESEX_BE;
sbi               188 fs/sysv/super.c 	switch (fs32_to_cpu(sbi, sbd->s_type)) {
sbi               190 fs/sysv/super.c 		sbi->s_type = FSTYPE_XENIX;
sbi               193 fs/sysv/super.c 		sbi->s_type = FSTYPE_XENIX;
sbi               200 fs/sysv/super.c static int detect_sysv(struct sysv_sb_info *sbi, struct buffer_head *bh)
sbi               202 fs/sysv/super.c 	struct super_block *sb = sbi->s_sb;
sbi               209 fs/sysv/super.c 		sbi->s_bytesex = BYTESEX_LE;
sbi               211 fs/sysv/super.c 		sbi->s_bytesex = BYTESEX_BE;
sbi               215 fs/sysv/super.c 	type = fs32_to_cpu(sbi, sbd->s_type);
sbi               217 fs/sysv/super.c  	if (fs16_to_cpu(sbi, sbd->s_nfree) == 0xffff) {
sbi               218 fs/sysv/super.c  		sbi->s_type = FSTYPE_AFS;
sbi               219 fs/sysv/super.c 		sbi->s_forced_ro = 1;
sbi               228 fs/sysv/super.c 	if (fs32_to_cpu(sbi, sbd->s_time) < JAN_1_1980) {
sbi               232 fs/sysv/super.c 		sbi->s_type = FSTYPE_SYSV2;
sbi               246 fs/sysv/super.c 		sbi->s_forced_ro = 1;
sbi               249 fs/sysv/super.c 	sbi->s_type = FSTYPE_SYSV4;
sbi               253 fs/sysv/super.c static int detect_coherent(struct sysv_sb_info *sbi, struct buffer_head *bh)
sbi               261 fs/sysv/super.c 	sbi->s_bytesex = BYTESEX_PDP;
sbi               262 fs/sysv/super.c 	sbi->s_type = FSTYPE_COH;
sbi               266 fs/sysv/super.c static int detect_sysv_odd(struct sysv_sb_info *sbi, struct buffer_head *bh)
sbi               268 fs/sysv/super.c 	int size = detect_sysv(sbi, bh);
sbi               305 fs/sysv/super.c 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               307 fs/sysv/super.c 	char *found = flavour_names[sbi->s_type];
sbi               312 fs/sysv/super.c 	sbi->s_firstinodezone = 2;
sbi               314 fs/sysv/super.c 	flavour_setup[sbi->s_type](sbi, &sb->s_max_links);
sbi               316 fs/sysv/super.c 	sbi->s_ndatazones = sbi->s_nzones - sbi->s_firstdatazone;
sbi               317 fs/sysv/super.c 	sbi->s_inodes_per_block = bsize >> 6;
sbi               318 fs/sysv/super.c 	sbi->s_inodes_per_block_1 = (bsize >> 6)-1;
sbi               319 fs/sysv/super.c 	sbi->s_inodes_per_block_bits = n_bits-6;
sbi               320 fs/sysv/super.c 	sbi->s_ind_per_block = bsize_4;
sbi               321 fs/sysv/super.c 	sbi->s_ind_per_block_2 = bsize_4*bsize_4;
sbi               322 fs/sysv/super.c 	sbi->s_toobig_block = 10 + bsize_4 * (1 + bsize_4 * (1 + bsize_4));
sbi               323 fs/sysv/super.c 	sbi->s_ind_per_block_bits = n_bits-2;
sbi               325 fs/sysv/super.c 	sbi->s_ninodes = (sbi->s_firstdatazone - sbi->s_firstinodezone)
sbi               326 fs/sysv/super.c 		<< sbi->s_inodes_per_block_bits;
sbi               332 fs/sysv/super.c 	sb->s_magic = SYSV_MAGIC_BASE + sbi->s_type;
sbi               335 fs/sysv/super.c 	if (sbi->s_forced_ro)
sbi               353 fs/sysv/super.c 	struct sysv_sb_info *sbi;
sbi               363 fs/sysv/super.c 	sbi = kzalloc(sizeof(struct sysv_sb_info), GFP_KERNEL);
sbi               364 fs/sysv/super.c 	if (!sbi)
sbi               367 fs/sysv/super.c 	sbi->s_sb = sb;
sbi               368 fs/sysv/super.c 	sbi->s_block_base = 0;
sbi               369 fs/sysv/super.c 	mutex_init(&sbi->s_lock);
sbi               370 fs/sysv/super.c 	sb->s_fs_info = sbi;
sbi               408 fs/sysv/super.c 		sbi->s_bh1 = bh1;
sbi               409 fs/sysv/super.c 		sbi->s_bh2 = bh;
sbi               419 fs/sysv/super.c 	kfree(sbi);
sbi               441 fs/sysv/super.c 	struct sysv_sb_info *sbi;
sbi               443 fs/sysv/super.c 	sbi = sb->s_fs_info;
sbi               447 fs/sysv/super.c 	if (fs16_to_cpu(sbi, v7sb->s_nfree) > V7_NICFREE ||
sbi               448 fs/sysv/super.c 	    fs16_to_cpu(sbi, v7sb->s_ninode) > V7_NICINOD ||
sbi               449 fs/sysv/super.c 	    fs32_to_cpu(sbi, v7sb->s_fsize) > V7_MAXSIZE)
sbi               459 fs/sysv/super.c 	if ((fs16_to_cpu(sbi, v7i->i_mode) & ~0777) != S_IFDIR ||
sbi               460 fs/sysv/super.c 	    (fs32_to_cpu(sbi, v7i->i_size) == 0) ||
sbi               461 fs/sysv/super.c 	    (fs32_to_cpu(sbi, v7i->i_size) & 017) ||
sbi               462 fs/sysv/super.c 	    (fs32_to_cpu(sbi, v7i->i_size) > V7_NFILES *
sbi               474 fs/sysv/super.c 	struct sysv_sb_info *sbi;
sbi               482 fs/sysv/super.c 	sbi = kzalloc(sizeof(struct sysv_sb_info), GFP_KERNEL);
sbi               483 fs/sysv/super.c 	if (!sbi)
sbi               486 fs/sysv/super.c 	sbi->s_sb = sb;
sbi               487 fs/sysv/super.c 	sbi->s_block_base = 0;
sbi               488 fs/sysv/super.c 	sbi->s_type = FSTYPE_V7;
sbi               489 fs/sysv/super.c 	mutex_init(&sbi->s_lock);
sbi               490 fs/sysv/super.c 	sb->s_fs_info = sbi;
sbi               504 fs/sysv/super.c 	sbi->s_bytesex = BYTESEX_PDP;
sbi               509 fs/sysv/super.c 	sbi->s_bytesex = BYTESEX_LE;
sbi               516 fs/sysv/super.c 	sbi->s_bh1 = bh;
sbi               517 fs/sysv/super.c 	sbi->s_bh2 = bh;
sbi               525 fs/sysv/super.c 	kfree(sbi);
sbi               115 fs/sysv/sysv.h 	struct sysv_sb_info *sbi = SYSV_SB(sb);
sbi               117 fs/sysv/sysv.h 	mark_buffer_dirty(sbi->s_bh1);
sbi               118 fs/sysv/sysv.h 	if (sbi->s_bh1 != sbi->s_bh2)
sbi               119 fs/sysv/sysv.h 		mark_buffer_dirty(sbi->s_bh2);
sbi               188 fs/sysv/sysv.h static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
sbi               190 fs/sysv/sysv.h 	if (sbi->s_bytesex == BYTESEX_PDP)
sbi               192 fs/sysv/sysv.h 	else if (sbi->s_bytesex == BYTESEX_LE)
sbi               198 fs/sysv/sysv.h static inline __fs32 cpu_to_fs32(struct sysv_sb_info *sbi, __u32 n)
sbi               200 fs/sysv/sysv.h 	if (sbi->s_bytesex == BYTESEX_PDP)
sbi               202 fs/sysv/sysv.h 	else if (sbi->s_bytesex == BYTESEX_LE)
sbi               208 fs/sysv/sysv.h static inline __fs32 fs32_add(struct sysv_sb_info *sbi, __fs32 *n, int d)
sbi               210 fs/sysv/sysv.h 	if (sbi->s_bytesex == BYTESEX_PDP)
sbi               212 fs/sysv/sysv.h 	else if (sbi->s_bytesex == BYTESEX_LE)
sbi               219 fs/sysv/sysv.h static inline __u16 fs16_to_cpu(struct sysv_sb_info *sbi, __fs16 n)
sbi               221 fs/sysv/sysv.h 	if (sbi->s_bytesex != BYTESEX_BE)
sbi               227 fs/sysv/sysv.h static inline __fs16 cpu_to_fs16(struct sysv_sb_info *sbi, __u16 n)
sbi               229 fs/sysv/sysv.h 	if (sbi->s_bytesex != BYTESEX_BE)
sbi               235 fs/sysv/sysv.h static inline __fs16 fs16_add(struct sysv_sb_info *sbi, __fs16 *n, int d)
sbi               237 fs/sysv/sysv.h 	if (sbi->s_bytesex != BYTESEX_BE)
sbi                94 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi                97 fs/udf/balloc.c 	if (!sbi->s_lvid_bh)
sbi               100 fs/udf/balloc.c 	lvid = (struct logicalVolIntegrityDesc *)sbi->s_lvid_bh->b_data;
sbi               111 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               121 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               122 fs/udf/balloc.c 	partmap = &sbi->s_partmaps[bloc->partitionReferenceNum];
sbi               159 fs/udf/balloc.c 		udf_add_free_space(sb, sbi->s_partition, count);
sbi               168 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               176 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               183 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               184 fs/udf/balloc.c 	part_len = sbi->s_partmaps[partition].s_partition_len;
sbi               215 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               223 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               233 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               236 fs/udf/balloc.c 	if (goal >= sbi->s_partmaps[partition].s_partition_len)
sbi               303 fs/udf/balloc.c 		mutex_unlock(&sbi->s_alloc_mutex);
sbi               312 fs/udf/balloc.c 		mutex_unlock(&sbi->s_alloc_mutex);
sbi               328 fs/udf/balloc.c 	if (newblock >= sbi->s_partmaps[partition].s_partition_len) {
sbi               335 fs/udf/balloc.c 			newblock, sbi->s_partmaps[partition].s_partition_len);
sbi               347 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               353 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               363 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               372 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               373 fs/udf/balloc.c 	partmap = &sbi->s_partmaps[bloc->partitionReferenceNum];
sbi               384 fs/udf/balloc.c 	udf_add_free_space(sb, sbi->s_partition, count);
sbi               494 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               502 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               510 fs/udf/balloc.c 	if (first_block >= sbi->s_partmaps[partition].s_partition_len)
sbi               521 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               554 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               562 fs/udf/balloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               581 fs/udf/balloc.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               582 fs/udf/balloc.c 	if (goal >= sbi->s_partmaps[partition].s_partition_len)
sbi               625 fs/udf/balloc.c 		mutex_unlock(&sbi->s_alloc_mutex);
sbi               646 fs/udf/balloc.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi                32 fs/udf/ialloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi                36 fs/udf/ialloc.c 		mutex_lock(&sbi->s_alloc_mutex);
sbi                42 fs/udf/ialloc.c 		mutex_unlock(&sbi->s_alloc_mutex);
sbi                51 fs/udf/ialloc.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi                68 fs/udf/ialloc.c 		if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
sbi                69 fs/udf/ialloc.c 			sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE;
sbi                97 fs/udf/ialloc.c 		mutex_lock(&sbi->s_alloc_mutex);
sbi               103 fs/udf/ialloc.c 		mutex_unlock(&sbi->s_alloc_mutex);
sbi               108 fs/udf/ialloc.c 		inode->i_uid = sbi->s_uid;
sbi               110 fs/udf/ialloc.c 		inode->i_gid = sbi->s_gid;
sbi              1307 fs/udf/inode.c 	struct udf_sb_info *sbi = UDF_SB(inode->i_sb);
sbi              1316 fs/udf/inode.c 	if (iloc->partitionReferenceNum >= sbi->s_partitions) {
sbi              1318 fs/udf/inode.c 			  iloc->partitionReferenceNum, sbi->s_partitions);
sbi              1323 fs/udf/inode.c 	    sbi->s_partmaps[iloc->partitionReferenceNum].s_partition_len) {
sbi              1444 fs/udf/inode.c 	read_lock(&sbi->s_cred_lock);
sbi              1448 fs/udf/inode.c 		inode->i_uid = sbi->s_uid;
sbi              1455 fs/udf/inode.c 		inode->i_gid = sbi->s_gid;
sbi              1460 fs/udf/inode.c 			sbi->s_fmode != UDF_INVALID_MODE)
sbi              1461 fs/udf/inode.c 		inode->i_mode = sbi->s_fmode;
sbi              1463 fs/udf/inode.c 			sbi->s_dmode != UDF_INVALID_MODE)
sbi              1464 fs/udf/inode.c 		inode->i_mode = sbi->s_dmode;
sbi              1467 fs/udf/inode.c 	inode->i_mode &= ~sbi->s_umask;
sbi              1470 fs/udf/inode.c 	read_unlock(&sbi->s_cred_lock);
sbi              1688 fs/udf/inode.c 	struct udf_sb_info *sbi = UDF_SB(inode->i_sb);
sbi              1868 fs/udf/inode.c 	if (sbi->s_udfrev >= 0x0200)
sbi              1872 fs/udf/inode.c 	fe->descTag.tagSerialNum = cpu_to_le16(sbi->s_serial_number);
sbi                83 fs/udf/misc.c  			struct udf_sb_info *sbi = UDF_SB(inode->i_sb);
sbi                89 fs/udf/misc.c  			if (sbi->s_udfrev >= 0x0200)
sbi                94 fs/udf/misc.c  					cpu_to_le16(sbi->s_serial_number);
sbi                32 fs/udf/partition.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi                34 fs/udf/partition.c 	if (partition >= sbi->s_partitions) {
sbi                39 fs/udf/partition.c 	map = &sbi->s_partmaps[partition];
sbi                53 fs/udf/partition.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi                56 fs/udf/partition.c 	struct udf_inode_info *iinfo = UDF_I(sbi->s_vat_inode);
sbi                58 fs/udf/partition.c 	map = &sbi->s_partmaps[partition];
sbi                82 fs/udf/partition.c 	loc = udf_block_map(sbi->s_vat_inode, newblock);
sbi               117 fs/udf/partition.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               122 fs/udf/partition.c 	map = &sbi->s_partmaps[partition];
sbi               159 fs/udf/partition.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               164 fs/udf/partition.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi               165 fs/udf/partition.c 	for (i = 0; i < sbi->s_partitions; i++) {
sbi               166 fs/udf/partition.c 		struct udf_part_map *map = &sbi->s_partmaps[i];
sbi               269 fs/udf/partition.c 	if (i == sbi->s_partitions) {
sbi               276 fs/udf/partition.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi               309 fs/udf/partition.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               317 fs/udf/partition.c 	map = &sbi->s_partmaps[partition];
sbi               254 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               256 fs/udf/super.c 	sbi->s_partmaps = kcalloc(count, sizeof(*sbi->s_partmaps), GFP_KERNEL);
sbi               257 fs/udf/super.c 	if (!sbi->s_partmaps) {
sbi               258 fs/udf/super.c 		sbi->s_partitions = 0;
sbi               262 fs/udf/super.c 	sbi->s_partitions = count;
sbi               304 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               307 fs/udf/super.c 	if (!sbi->s_partmaps)
sbi               309 fs/udf/super.c 	for (i = 0; i < sbi->s_partitions; i++)
sbi               310 fs/udf/super.c 		udf_free_partition(&sbi->s_partmaps[i]);
sbi               311 fs/udf/super.c 	kfree(sbi->s_partmaps);
sbi               312 fs/udf/super.c 	sbi->s_partmaps = NULL;
sbi               318 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               337 fs/udf/super.c 		seq_printf(seq, ",uid=%u", from_kuid(&init_user_ns, sbi->s_uid));
sbi               339 fs/udf/super.c 		seq_printf(seq, ",gid=%u", from_kgid(&init_user_ns, sbi->s_gid));
sbi               340 fs/udf/super.c 	if (sbi->s_umask != 0)
sbi               341 fs/udf/super.c 		seq_printf(seq, ",umask=%ho", sbi->s_umask);
sbi               342 fs/udf/super.c 	if (sbi->s_fmode != UDF_INVALID_MODE)
sbi               343 fs/udf/super.c 		seq_printf(seq, ",mode=%ho", sbi->s_fmode);
sbi               344 fs/udf/super.c 	if (sbi->s_dmode != UDF_INVALID_MODE)
sbi               345 fs/udf/super.c 		seq_printf(seq, ",dmode=%ho", sbi->s_dmode);
sbi               347 fs/udf/super.c 		seq_printf(seq, ",session=%d", sbi->s_session);
sbi               349 fs/udf/super.c 		seq_printf(seq, ",lastblock=%u", sbi->s_last_block);
sbi               350 fs/udf/super.c 	if (sbi->s_anchor != 0)
sbi               351 fs/udf/super.c 		seq_printf(seq, ",anchor=%u", sbi->s_anchor);
sbi               354 fs/udf/super.c 	if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP) && sbi->s_nls_map)
sbi               355 fs/udf/super.c 		seq_printf(seq, ",iocharset=%s", sbi->s_nls_map->charset);
sbi               606 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               614 fs/udf/super.c 	uopt.flags = sbi->s_flags;
sbi               615 fs/udf/super.c 	uopt.uid   = sbi->s_uid;
sbi               616 fs/udf/super.c 	uopt.gid   = sbi->s_gid;
sbi               617 fs/udf/super.c 	uopt.umask = sbi->s_umask;
sbi               618 fs/udf/super.c 	uopt.fmode = sbi->s_fmode;
sbi               619 fs/udf/super.c 	uopt.dmode = sbi->s_dmode;
sbi               625 fs/udf/super.c 	write_lock(&sbi->s_cred_lock);
sbi               626 fs/udf/super.c 	sbi->s_flags = uopt.flags;
sbi               627 fs/udf/super.c 	sbi->s_uid   = uopt.uid;
sbi               628 fs/udf/super.c 	sbi->s_gid   = uopt.gid;
sbi               629 fs/udf/super.c 	sbi->s_umask = uopt.umask;
sbi               630 fs/udf/super.c 	sbi->s_fmode = uopt.fmode;
sbi               631 fs/udf/super.c 	sbi->s_dmode = uopt.dmode;
sbi               632 fs/udf/super.c 	write_unlock(&sbi->s_cred_lock);
sbi               707 fs/udf/super.c 	struct udf_sb_info *sbi;
sbi               709 fs/udf/super.c 	sbi = UDF_SB(sb);
sbi               715 fs/udf/super.c 	sector += (((loff_t)sbi->s_session) << sb->s_blocksize_bits);
sbi               760 fs/udf/super.c 	else if (!bh && sector - (sbi->s_session << sb->s_blocksize_bits) ==
sbi               937 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               943 fs/udf/super.c 	map = &sbi->s_partmaps[partition];
sbi              1080 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1084 fs/udf/super.c 	map = &sbi->s_partmaps[p_index];
sbi              1153 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1154 fs/udf/super.c 	struct udf_part_map *map = &sbi->s_partmaps[p_index];
sbi              1170 fs/udf/super.c 			sbi->s_vat_inode = inode;
sbi              1178 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1179 fs/udf/super.c 	struct udf_part_map *map = &sbi->s_partmaps[p_index];
sbi              1187 fs/udf/super.c 	udf_find_vat_block(sb, p_index, type1_index, sbi->s_last_block);
sbi              1188 fs/udf/super.c 	if (!sbi->s_vat_inode &&
sbi              1189 fs/udf/super.c 	    sbi->s_last_block != blocks - 1) {
sbi              1191 fs/udf/super.c 			  (unsigned long)sbi->s_last_block,
sbi              1195 fs/udf/super.c 	if (!sbi->s_vat_inode)
sbi              1201 fs/udf/super.c 			(sbi->s_vat_inode->i_size - 36) >> 2;
sbi              1203 fs/udf/super.c 		vati = UDF_I(sbi->s_vat_inode);
sbi              1205 fs/udf/super.c 			pos = udf_block_map(sbi->s_vat_inode, 0);
sbi              1218 fs/udf/super.c 			(sbi->s_vat_inode->i_size -
sbi              1237 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1255 fs/udf/super.c 	for (i = 0; i < sbi->s_partitions; i++) {
sbi              1256 fs/udf/super.c 		map = &sbi->s_partmaps[i];
sbi              1265 fs/udf/super.c 	if (i >= sbi->s_partitions) {
sbi              1282 fs/udf/super.c 	for (i = 0; i < sbi->s_partitions; i++) {
sbi              1283 fs/udf/super.c 		map = &sbi->s_partmaps[i];
sbi              1292 fs/udf/super.c 	if (i >= sbi->s_partitions) {
sbi              1384 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1414 fs/udf/super.c 	     i < sbi->s_partitions && offset < table_len;
sbi              1416 fs/udf/super.c 		struct udf_part_map *map = &sbi->s_partmaps[i];
sbi              1519 fs/udf/super.c 	if (!sbi->s_lvid_bh) {
sbi              1541 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1565 fs/udf/super.c 		brelse(sbi->s_lvid_bh);
sbi              1566 fs/udf/super.c 		sbi->s_lvid_bh = final_bh;
sbi              1577 fs/udf/super.c 	brelse(sbi->s_lvid_bh);
sbi              1578 fs/udf/super.c 	sbi->s_lvid_bh = NULL;
sbi              1850 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1855 fs/udf/super.c 	if (sbi->s_anchor) {
sbi              1856 fs/udf/super.c 		ret = udf_check_anchor_block(sb, sbi->s_anchor, fileset);
sbi              1867 fs/udf/super.c 	ret = udf_check_anchor_block(sb, sbi->s_session + 256, fileset);
sbi              1906 fs/udf/super.c 	return udf_check_anchor_block(sb, sbi->s_session + 512, fileset);
sbi              1920 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1921 fs/udf/super.c 	sector_t lastblock = sbi->s_last_block;
sbi              1930 fs/udf/super.c 	lastblock = udf_variable_to_fixed(sbi->s_last_block);
sbi              1936 fs/udf/super.c 	lastblock = sbi->s_last_block;
sbi              1945 fs/udf/super.c 		sbi->s_last_block = lastblock;
sbi              1959 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              1968 fs/udf/super.c 	sbi->s_last_block = uopt->lastblock;
sbi              1981 fs/udf/super.c 		if (!sbi->s_last_block)
sbi              1982 fs/udf/super.c 			sbi->s_last_block = udf_get_last_block(sb);
sbi              1988 fs/udf/super.c 	sbi->s_anchor = uopt->anchor;
sbi              2012 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2013 fs/udf/super.c 	struct buffer_head *bh = sbi->s_lvid_bh;
sbi              2024 fs/udf/super.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi              2034 fs/udf/super.c 	sbi->s_lvid_dirty = 0;
sbi              2035 fs/udf/super.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi              2042 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2043 fs/udf/super.c 	struct buffer_head *bh = sbi->s_lvid_bh;
sbi              2054 fs/udf/super.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi              2059 fs/udf/super.c 	if (sbi->s_udfrev > le16_to_cpu(lvidiu->minUDFReadRev))
sbi              2060 fs/udf/super.c 		lvidiu->minUDFReadRev = cpu_to_le16(sbi->s_udfrev);
sbi              2061 fs/udf/super.c 	if (sbi->s_udfrev > le16_to_cpu(lvidiu->minUDFWriteRev))
sbi              2062 fs/udf/super.c 		lvidiu->minUDFWriteRev = cpu_to_le16(sbi->s_udfrev);
sbi              2074 fs/udf/super.c 	sbi->s_lvid_dirty = 0;
sbi              2075 fs/udf/super.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi              2083 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2089 fs/udf/super.c 	bh = sbi->s_lvid_bh;
sbi              2096 fs/udf/super.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi              2102 fs/udf/super.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi              2113 fs/udf/super.c 	struct udf_sb_info *sbi;
sbi              2125 fs/udf/super.c 	sbi = kzalloc(sizeof(*sbi), GFP_KERNEL);
sbi              2126 fs/udf/super.c 	if (!sbi)
sbi              2129 fs/udf/super.c 	sb->s_fs_info = sbi;
sbi              2131 fs/udf/super.c 	mutex_init(&sbi->s_alloc_mutex);
sbi              2154 fs/udf/super.c 	sbi->s_flags = uopt.flags;
sbi              2155 fs/udf/super.c 	sbi->s_uid = uopt.uid;
sbi              2156 fs/udf/super.c 	sbi->s_gid = uopt.gid;
sbi              2157 fs/udf/super.c 	sbi->s_umask = uopt.umask;
sbi              2158 fs/udf/super.c 	sbi->s_fmode = uopt.fmode;
sbi              2159 fs/udf/super.c 	sbi->s_dmode = uopt.dmode;
sbi              2160 fs/udf/super.c 	sbi->s_nls_map = uopt.nls_map;
sbi              2161 fs/udf/super.c 	rwlock_init(&sbi->s_cred_lock);
sbi              2164 fs/udf/super.c 		sbi->s_session = udf_get_last_session(sb);
sbi              2166 fs/udf/super.c 		sbi->s_session = uopt.session;
sbi              2168 fs/udf/super.c 	udf_debug("Multi-session=%d\n", sbi->s_session);
sbi              2188 fs/udf/super.c 				brelse(sbi->s_lvid_bh);
sbi              2189 fs/udf/super.c 				sbi->s_lvid_bh = NULL;
sbi              2210 fs/udf/super.c 	udf_debug("Lastblock=%u\n", sbi->s_last_block);
sbi              2212 fs/udf/super.c 	if (sbi->s_lvid_bh) {
sbi              2238 fs/udf/super.c 		sbi->s_udfrev = minUDFWriteRev;
sbi              2246 fs/udf/super.c 	if (!sbi->s_partitions) {
sbi              2252 fs/udf/super.c 	if (sbi->s_partmaps[sbi->s_partition].s_partition_flags &
sbi              2269 fs/udf/super.c 		udf_time_to_disk_stamp(&ts, sbi->s_record_time);
sbi              2271 fs/udf/super.c 			 sbi->s_volume_ident,
sbi              2303 fs/udf/super.c 	iput(sbi->s_vat_inode);
sbi              2309 fs/udf/super.c 	brelse(sbi->s_lvid_bh);
sbi              2311 fs/udf/super.c 	kfree(sbi);
sbi              2351 fs/udf/super.c 	struct udf_sb_info *sbi;
sbi              2353 fs/udf/super.c 	sbi = UDF_SB(sb);
sbi              2355 fs/udf/super.c 	iput(sbi->s_vat_inode);
sbi              2357 fs/udf/super.c 		unload_nls(sbi->s_nls_map);
sbi              2360 fs/udf/super.c 	brelse(sbi->s_lvid_bh);
sbi              2362 fs/udf/super.c 	mutex_destroy(&sbi->s_alloc_mutex);
sbi              2369 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2371 fs/udf/super.c 	mutex_lock(&sbi->s_alloc_mutex);
sbi              2372 fs/udf/super.c 	if (sbi->s_lvid_dirty) {
sbi              2373 fs/udf/super.c 		struct buffer_head *bh = sbi->s_lvid_bh;
sbi              2384 fs/udf/super.c 		sbi->s_lvid_dirty = 0;
sbi              2386 fs/udf/super.c 	mutex_unlock(&sbi->s_alloc_mutex);
sbi              2394 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2401 fs/udf/super.c 	buf->f_blocks = sbi->s_partmaps[sbi->s_partition].s_partition_len;
sbi              2494 fs/udf/super.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi              2496 fs/udf/super.c 	unsigned int part = sbi->s_partition;
sbi              2497 fs/udf/super.c 	int ptype = sbi->s_partmaps[part].s_partition_type;
sbi              2500 fs/udf/super.c 		part = sbi->s_partmaps[part].s_type_specific.s_metadata.
sbi              2510 fs/udf/super.c 	if (sbi->s_lvid_bh) {
sbi              2513 fs/udf/super.c 			sbi->s_lvid_bh->b_data;
sbi              2525 fs/udf/super.c 	map = &sbi->s_partmaps[part];
sbi               184 fs/udf/truncate.c 	struct udf_sb_info *sbi = UDF_SB(sb);
sbi               190 fs/udf/truncate.c 	if (!UDF_QUERY_FLAG(sb, UDF_FLAG_STRICT) || sbi->s_udfrev >= 0x0201)
sbi                32 fs/ufs/cylinder.c 	struct ufs_sb_info * sbi = UFS_SB(sb);
sbi                39 fs/ufs/cylinder.c 	uspi = sbi->s_uspi;
sbi                40 fs/ufs/cylinder.c 	ucpi = sbi->s_ucpi[bitmap_nr];
sbi                41 fs/ufs/cylinder.c 	ucg = (struct ufs_cylinder_group *)sbi->s_ucg[cgno]->b_data;
sbi                48 fs/ufs/cylinder.c 	UCPI_UBH(ucpi)->bh[0] = sbi->s_ucg[cgno];
sbi                52 fs/ufs/cylinder.c 	sbi->s_cgno[bitmap_nr] = cgno;
sbi                74 fs/ufs/cylinder.c 		brelse (sbi->s_ucg[j]);
sbi                75 fs/ufs/cylinder.c 	sbi->s_cgno[bitmap_nr] = UFS_CGNO_EMPTY;
sbi                85 fs/ufs/cylinder.c 	struct ufs_sb_info * sbi = UFS_SB(sb);
sbi                93 fs/ufs/cylinder.c 	uspi = sbi->s_uspi;
sbi                94 fs/ufs/cylinder.c 	if (sbi->s_cgno[bitmap_nr] == UFS_CGNO_EMPTY) {
sbi                98 fs/ufs/cylinder.c 	ucpi = sbi->s_ucpi[bitmap_nr];
sbi               101 fs/ufs/cylinder.c 	if (uspi->s_ncg > UFS_MAX_GROUP_LOADED && bitmap_nr >= sbi->s_cg_loaded) {
sbi               117 fs/ufs/cylinder.c 	sbi->s_cgno[bitmap_nr] = UFS_CGNO_EMPTY;
sbi               130 fs/ufs/cylinder.c 	struct ufs_sb_info * sbi = UFS_SB(sb);
sbi               137 fs/ufs/cylinder.c 	uspi = sbi->s_uspi;
sbi               145 fs/ufs/cylinder.c 	if (sbi->s_cgno[0] == cgno) {
sbi               147 fs/ufs/cylinder.c 		return sbi->s_ucpi[0];
sbi               153 fs/ufs/cylinder.c 		if (sbi->s_cgno[cgno] != UFS_CGNO_EMPTY) {
sbi               154 fs/ufs/cylinder.c 			if (sbi->s_cgno[cgno] != cgno) {
sbi               161 fs/ufs/cylinder.c 				return sbi->s_ucpi[cgno];
sbi               166 fs/ufs/cylinder.c 			return sbi->s_ucpi[cgno];
sbi               173 fs/ufs/cylinder.c 	for (i = 0; i < sbi->s_cg_loaded && sbi->s_cgno[i] != cgno; i++);
sbi               174 fs/ufs/cylinder.c 	if (i < sbi->s_cg_loaded && sbi->s_cgno[i] == cgno) {
sbi               175 fs/ufs/cylinder.c 		cg = sbi->s_cgno[i];
sbi               176 fs/ufs/cylinder.c 		ucpi = sbi->s_ucpi[i];
sbi               178 fs/ufs/cylinder.c 			sbi->s_cgno[j] = sbi->s_cgno[j-1];
sbi               179 fs/ufs/cylinder.c 			sbi->s_ucpi[j] = sbi->s_ucpi[j-1];
sbi               181 fs/ufs/cylinder.c 		sbi->s_cgno[0] = cg;
sbi               182 fs/ufs/cylinder.c 		sbi->s_ucpi[0] = ucpi;
sbi               188 fs/ufs/cylinder.c 		if (sbi->s_cg_loaded < UFS_MAX_GROUP_LOADED)
sbi               189 fs/ufs/cylinder.c 			sbi->s_cg_loaded++;
sbi               192 fs/ufs/cylinder.c 		ucpi = sbi->s_ucpi[sbi->s_cg_loaded - 1];
sbi               193 fs/ufs/cylinder.c 		for (j = sbi->s_cg_loaded - 1; j > 0; j--) {
sbi               194 fs/ufs/cylinder.c 			sbi->s_cgno[j] = sbi->s_cgno[j-1];
sbi               195 fs/ufs/cylinder.c 			sbi->s_ucpi[j] = sbi->s_ucpi[j-1];
sbi               197 fs/ufs/cylinder.c 		sbi->s_ucpi[0] = ucpi;
sbi               201 fs/ufs/cylinder.c 	return sbi->s_ucpi[0];
sbi               175 fs/ufs/ialloc.c 	struct ufs_sb_info * sbi;
sbi               195 fs/ufs/ialloc.c 	sbi = UFS_SB(sb);
sbi               196 fs/ufs/ialloc.c 	uspi = sbi->s_uspi;
sbi               198 fs/ufs/ialloc.c 	mutex_lock(&sbi->s_lock);
sbi               204 fs/ufs/ialloc.c 	if (sbi->fs_cs(i).cs_nifree) {
sbi               216 fs/ufs/ialloc.c 		if (sbi->fs_cs(i).cs_nifree) {
sbi               230 fs/ufs/ialloc.c 		if (sbi->fs_cs(i).cs_nifree) {
sbi               278 fs/ufs/ialloc.c 	fs32_sub(sb, &sbi->fs_cs(cg).cs_nifree, 1);
sbi               283 fs/ufs/ialloc.c 		fs32_add(sb, &sbi->fs_cs(cg).cs_ndir, 1);
sbi               337 fs/ufs/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               344 fs/ufs/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               350 fs/ufs/ialloc.c 	mutex_unlock(&sbi->s_lock);
sbi               472 fs/ufs/super.c 	struct ufs_sb_info *sbi = UFS_SB(sb);
sbi               473 fs/ufs/super.c 	struct ufs_sb_private_info *uspi = sbi->s_uspi;
sbi               477 fs/ufs/super.c 	unsigned mtype = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE;
sbi               506 fs/ufs/super.c 	struct ufs_sb_info *sbi = UFS_SB(sb);
sbi               507 fs/ufs/super.c 	struct ufs_sb_private_info *uspi = sbi->s_uspi;
sbi               523 fs/ufs/super.c 	sbi->s_csp = (struct ufs_csum *)space;
sbi               545 fs/ufs/super.c 	sbi->s_ucg = kmalloc_array(uspi->s_ncg, sizeof(struct buffer_head *),
sbi               547 fs/ufs/super.c 	if (!sbi->s_ucg)
sbi               550 fs/ufs/super.c 		sbi->s_ucg[i] = NULL;
sbi               552 fs/ufs/super.c 		sbi->s_ucpi[i] = NULL;
sbi               553 fs/ufs/super.c 		sbi->s_cgno[i] = UFS_CGNO_EMPTY;
sbi               557 fs/ufs/super.c 		if (!(sbi->s_ucg[i] = sb_bread(sb, ufs_cgcmin(i))))
sbi               559 fs/ufs/super.c 		if (!ufs_cg_chkmagic (sb, (struct ufs_cylinder_group *) sbi->s_ucg[i]->b_data))
sbi               562 fs/ufs/super.c 		ufs_print_cylinder_stuff(sb, (struct ufs_cylinder_group *) sbi->s_ucg[i]->b_data);
sbi               565 fs/ufs/super.c 		if (!(sbi->s_ucpi[i] = kmalloc (sizeof(struct ufs_cg_private_info), GFP_NOFS)))
sbi               567 fs/ufs/super.c 		sbi->s_cgno[i] = UFS_CGNO_EMPTY;
sbi               569 fs/ufs/super.c 	sbi->s_cg_loaded = 0;
sbi               575 fs/ufs/super.c 	if (sbi->s_ucg) {
sbi               577 fs/ufs/super.c 			if (sbi->s_ucg[i])
sbi               578 fs/ufs/super.c 				brelse (sbi->s_ucg[i]);
sbi               579 fs/ufs/super.c 		kfree (sbi->s_ucg);
sbi               581 fs/ufs/super.c 			kfree (sbi->s_ucpi[i]);
sbi               646 fs/ufs/super.c 	struct ufs_sb_info *sbi = UFS_SB(sb);
sbi               647 fs/ufs/super.c 	struct ufs_sb_private_info *uspi = sbi->s_uspi;
sbi               658 fs/ufs/super.c 	base = space = (char*) sbi->s_csp;
sbi               672 fs/ufs/super.c 	for (i = 0; i < sbi->s_cg_loaded; i++) {
sbi               674 fs/ufs/super.c 		kfree (sbi->s_ucpi[i]);
sbi               677 fs/ufs/super.c 		kfree (sbi->s_ucpi[i]);
sbi               679 fs/ufs/super.c 		brelse (sbi->s_ucg[i]);
sbi               680 fs/ufs/super.c 	kfree (sbi->s_ucg);
sbi               718 fs/ufs/super.c 	struct ufs_sb_info *sbi;
sbi               720 fs/ufs/super.c 	sbi = container_of(work, struct ufs_sb_info, sync_work.work);
sbi               722 fs/ufs/super.c 	spin_lock(&sbi->work_lock);
sbi               723 fs/ufs/super.c 	sbi->work_queued = 0;
sbi               724 fs/ufs/super.c 	spin_unlock(&sbi->work_lock);
sbi               726 fs/ufs/super.c 	ufs_sync_fs(sbi->sb, 1);
sbi               731 fs/ufs/super.c 	struct ufs_sb_info *sbi = UFS_SB(sb);
sbi               734 fs/ufs/super.c 	spin_lock(&sbi->work_lock);
sbi               735 fs/ufs/super.c 	if (!sbi->work_queued) {
sbi               737 fs/ufs/super.c 		queue_delayed_work(system_long_wq, &sbi->sync_work, delay);
sbi               738 fs/ufs/super.c 		sbi->work_queued = 1;
sbi               740 fs/ufs/super.c 	spin_unlock(&sbi->work_lock);
sbi               745 fs/ufs/super.c 	struct ufs_sb_info * sbi = UFS_SB(sb);
sbi               751 fs/ufs/super.c 	cancel_delayed_work_sync(&sbi->sync_work);
sbi               753 fs/ufs/super.c 	ubh_brelse_uspi (sbi->s_uspi);
sbi               754 fs/ufs/super.c 	kfree (sbi->s_uspi);
sbi               755 fs/ufs/super.c 	kfree (sbi);
sbi               780 fs/ufs/super.c 	struct ufs_sb_info * sbi;
sbi               806 fs/ufs/super.c 	sbi = kzalloc(sizeof(struct ufs_sb_info), GFP_KERNEL);
sbi               807 fs/ufs/super.c 	if (!sbi)
sbi               809 fs/ufs/super.c 	sb->s_fs_info = sbi;
sbi               810 fs/ufs/super.c 	sbi->sb = sb;
sbi               814 fs/ufs/super.c 	mutex_init(&sbi->s_lock);
sbi               815 fs/ufs/super.c 	spin_lock_init(&sbi->work_lock);
sbi               816 fs/ufs/super.c 	INIT_DELAYED_WORK(&sbi->sync_work, delayed_sync_fs);
sbi               821 fs/ufs/super.c 	sbi->s_mount_opt = 0;
sbi               822 fs/ufs/super.c 	ufs_set_opt (sbi->s_mount_opt, ONERROR_LOCK);
sbi               823 fs/ufs/super.c 	if (!ufs_parse_options ((char *) data, &sbi->s_mount_opt)) {
sbi               827 fs/ufs/super.c 	if (!(sbi->s_mount_opt & UFS_MOUNT_UFSTYPE)) {
sbi               834 fs/ufs/super.c 		ufs_set_opt (sbi->s_mount_opt, UFSTYPE_OLD);
sbi               838 fs/ufs/super.c 	sbi->s_uspi = uspi;
sbi               850 fs/ufs/super.c 	switch (sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) {
sbi              1028 fs/ufs/super.c 	sbi->s_bytesex = BYTESEX_LE;
sbi              1038 fs/ufs/super.c 	sbi->s_bytesex = BYTESEX_BE;
sbi              1049 fs/ufs/super.c 	if ((((sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) == UFS_MOUNT_UFSTYPE_NEXTSTEP) 
sbi              1050 fs/ufs/super.c 	  || ((sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) == UFS_MOUNT_UFSTYPE_NEXTSTEP_CD) 
sbi              1051 fs/ufs/super.c 	  || ((sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) == UFS_MOUNT_UFSTYPE_OPENSTEP)) 
sbi              1111 fs/ufs/super.c 	sbi->s_flags = flags;/*after that line some functions use s_flags*/
sbi              1255 fs/ufs/super.c 	if ((sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) == UFS_MOUNT_UFSTYPE_44BSD ||
sbi              1256 fs/ufs/super.c 	    (sbi->s_mount_opt & UFS_MOUNT_UFSTYPE) == UFS_MOUNT_UFSTYPE_UFS2)
sbi              1298 fs/ufs/super.c 	kfree(sbi);
sbi              1394 fs/ufs/super.c 	struct ufs_sb_info *sbi = UFS_SB(root->d_sb);
sbi              1395 fs/ufs/super.c 	unsigned mval = sbi->s_mount_opt & UFS_MOUNT_UFSTYPE;
sbi              1403 fs/ufs/super.c 	mval = sbi->s_mount_opt & UFS_MOUNT_ONERROR;
sbi                33 include/linux/f2fs_fs.h #define F2FS_ROOT_INO(sbi)	((sbi)->root_ino_num)
sbi                34 include/linux/f2fs_fs.h #define F2FS_NODE_INO(sbi)	((sbi)->node_ino_num)
sbi                35 include/linux/f2fs_fs.h #define F2FS_META_INO(sbi)	((sbi)->meta_ino_num)
sbi                41 include/linux/f2fs_fs.h #define f2fs_has_strict_mode(sbi) \
sbi                42 include/linux/f2fs_fs.h 	(sbi->s_encoding_flags & F2FS_ENC_STRICT_MODE_FL)
sbi                44 include/linux/f2fs_fs.h #define F2FS_IO_SIZE(sbi)	(1 << F2FS_OPTION(sbi).write_io_size_bits) /* Blocks */
sbi                45 include/linux/f2fs_fs.h #define F2FS_IO_SIZE_KB(sbi)	(1 << (F2FS_OPTION(sbi).write_io_size_bits + 2)) /* KB */
sbi                46 include/linux/f2fs_fs.h #define F2FS_IO_SIZE_BYTES(sbi)	(1 << (F2FS_OPTION(sbi).write_io_size_bits + 12)) /* B */
sbi                47 include/linux/f2fs_fs.h #define F2FS_IO_SIZE_BITS(sbi)	(F2FS_OPTION(sbi).write_io_size_bits) /* power of 2 */
sbi                48 include/linux/f2fs_fs.h #define F2FS_IO_SIZE_MASK(sbi)	(F2FS_IO_SIZE(sbi) - 1)
sbi                49 include/linux/f2fs_fs.h #define F2FS_IO_ALIGNED(sbi)	(F2FS_IO_SIZE(sbi) > 1)
sbi              1605 include/trace/events/f2fs.h 	TP_PROTO(struct f2fs_sb_info *sbi, unsigned int node_cnt,
sbi              1608 include/trace/events/f2fs.h 	TP_ARGS(sbi, node_cnt, tree_cnt),
sbi              1617 include/trace/events/f2fs.h 		__entry->dev = sbi->sb->s_dev;
sbi              1691 include/trace/events/f2fs.h 	TP_PROTO(struct f2fs_sb_info *sbi, unsigned int mode, int ret),
sbi              1693 include/trace/events/f2fs.h 	TP_ARGS(sbi, mode, ret),
sbi              1702 include/trace/events/f2fs.h 		__entry->dev = sbi->sb->s_dev;
sbi               178 sound/drivers/opl3/opl3_oss.c 	struct sbi_instrument sbi;
sbi               193 sound/drivers/opl3/opl3_oss.c 	if (count < (int)sizeof(sbi)) {
sbi               197 sound/drivers/opl3/opl3_oss.c 	if (copy_from_user(&sbi, buf, sizeof(sbi)))
sbi               200 sound/drivers/opl3/opl3_oss.c 	if (sbi.channel < 0 || sbi.channel >= SBFM_MAXINSTR) {
sbi               202 sound/drivers/opl3/opl3_oss.c 			   sbi.channel);
sbi               207 sound/drivers/opl3/opl3_oss.c 	sprintf(name, "Chan%d", sbi.channel);
sbi               209 sound/drivers/opl3/opl3_oss.c 	err = snd_opl3_load_patch(opl3, sbi.channel, 127, type, name, NULL,
sbi               210 sound/drivers/opl3/opl3_oss.c 				  sbi.operators);
sbi               214 sound/drivers/opl3/opl3_oss.c 	return sizeof(sbi);