Lines Matching refs:sb

1255 #define clear_opt(sb, opt)		EXT4_SB(sb)->s_mount_opt &= \
1257 #define set_opt(sb, opt) EXT4_SB(sb)->s_mount_opt |= \
1259 #define test_opt(sb, opt) (EXT4_SB(sb)->s_mount_opt & \
1262 #define clear_opt2(sb, opt) EXT4_SB(sb)->s_mount_opt2 &= \
1264 #define set_opt2(sb, opt) EXT4_SB(sb)->s_mount_opt2 |= \
1266 #define test_opt2(sb, opt) (EXT4_SB(sb)->s_mount_opt2 & \
1451 struct super_block *sb;
1468 static inline int ext4_inodes_per_orphan_block(struct super_block *sb)
1470 return (sb->s_blocksize - sizeof(struct ext4_orphan_block_tail)) /
1758 static inline struct ext4_sb_info *EXT4_SB(struct super_block *sb)
1760 return sb->s_fs_info;
1767 static inline int ext4_writepages_down_read(struct super_block *sb)
1769 percpu_down_read(&EXT4_SB(sb)->s_writepages_rwsem);
1773 static inline void ext4_writepages_up_read(struct super_block *sb, int ctx)
1776 percpu_up_read(&EXT4_SB(sb)->s_writepages_rwsem);
1779 static inline int ext4_writepages_down_write(struct super_block *sb)
1781 percpu_down_write(&EXT4_SB(sb)->s_writepages_rwsem);
1785 static inline void ext4_writepages_up_write(struct super_block *sb, int ctx)
1788 percpu_up_write(&EXT4_SB(sb)->s_writepages_rwsem);
1791 static inline int ext4_valid_inum(struct super_block *sb, unsigned long ino)
1794 (ino >= EXT4_FIRST_INO(sb) &&
1795 ino <= le32_to_cpu(EXT4_SB(sb)->s_es->s_inodes_count));
1823 static inline void ext4_set_mount_flag(struct super_block *sb, int bit)
1825 set_bit(bit, &EXT4_SB(sb)->s_mount_flags);
1828 static inline void ext4_clear_mount_flag(struct super_block *sb, int bit)
1830 clear_bit(bit, &EXT4_SB(sb)->s_mount_flags);
1833 static inline int ext4_test_mount_flag(struct super_block *sb, int bit)
1835 return test_bit(bit, &EXT4_SB(sb)->s_mount_flags);
1851 static inline bool ext4_simulate_fail(struct super_block *sb,
1855 struct ext4_sb_info *sbi = EXT4_SB(sb);
1865 static inline void ext4_simulate_fail_bh(struct super_block *sb,
1869 if (!IS_ERR(bh) && ext4_simulate_fail(sb, code))
1962 #define EXT4_SB(sb) (sb)
2057 extern void ext4_update_dynamic_rev(struct super_block *sb);
2060 static inline bool ext4_has_feature_##name(struct super_block *sb) \
2062 return ((EXT4_SB(sb)->s_es->s_feature_compat & \
2065 static inline void ext4_set_feature_##name(struct super_block *sb) \
2067 ext4_update_dynamic_rev(sb); \
2068 EXT4_SB(sb)->s_es->s_feature_compat |= \
2071 static inline void ext4_clear_feature_##name(struct super_block *sb) \
2073 EXT4_SB(sb)->s_es->s_feature_compat &= \
2078 static inline bool ext4_has_feature_##name(struct super_block *sb) \
2080 return ((EXT4_SB(sb)->s_es->s_feature_ro_compat & \
2083 static inline void ext4_set_feature_##name(struct super_block *sb) \
2085 ext4_update_dynamic_rev(sb); \
2086 EXT4_SB(sb)->s_es->s_feature_ro_compat |= \
2089 static inline void ext4_clear_feature_##name(struct super_block *sb) \
2091 EXT4_SB(sb)->s_es->s_feature_ro_compat &= \
2096 static inline bool ext4_has_feature_##name(struct super_block *sb) \
2098 return ((EXT4_SB(sb)->s_es->s_feature_incompat & \
2101 static inline void ext4_set_feature_##name(struct super_block *sb) \
2103 ext4_update_dynamic_rev(sb); \
2104 EXT4_SB(sb)->s_es->s_feature_incompat |= \
2107 static inline void ext4_clear_feature_##name(struct super_block *sb) \
2109 EXT4_SB(sb)->s_es->s_feature_incompat &= \
2201 static inline bool ext4_has_unknown_ext##ver##_compat_features(struct super_block *sb) \
2203 return ((EXT4_SB(sb)->s_es->s_feature_compat & \
2206 static inline bool ext4_has_unknown_ext##ver##_ro_compat_features(struct super_block *sb) \
2208 return ((EXT4_SB(sb)->s_es->s_feature_ro_compat & \
2211 static inline bool ext4_has_unknown_ext##ver##_incompat_features(struct super_block *sb) \
2213 return ((EXT4_SB(sb)->s_es->s_feature_incompat & \
2221 static inline bool ext4_has_compat_features(struct super_block *sb)
2223 return (EXT4_SB(sb)->s_es->s_feature_compat != 0);
2225 static inline bool ext4_has_ro_compat_features(struct super_block *sb)
2227 return (EXT4_SB(sb)->s_es->s_feature_ro_compat != 0);
2229 static inline bool ext4_has_incompat_features(struct super_block *sb)
2231 return (EXT4_SB(sb)->s_es->s_feature_incompat != 0);
2234 extern int ext4_feature_set_ok(struct super_block *sb, int readonly);
2243 static inline int ext4_forced_shutdown(struct super_block *sb)
2245 return test_bit(EXT4_FLAGS_SHUTDOWN, &EXT4_SB(sb)->s_ext4_flags);
2557 ext4_group_first_block_no(struct super_block *sb, ext4_group_t group_no)
2559 return group_no * (ext4_fsblk_t)EXT4_BLOCKS_PER_GROUP(sb) +
2560 le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block);
2572 static inline int ext4_dir_htree_level(struct super_block *sb)
2574 return ext4_has_feature_largedir(sb) ?
2654 struct super_block *sb; /* super block of the fs */
2691 void ext4_inode_bitmap_csum_set(struct super_block *sb,
2694 int ext4_inode_bitmap_csum_verify(struct super_block *sb,
2697 void ext4_block_bitmap_csum_set(struct super_block *sb,
2700 int ext4_block_bitmap_csum_verify(struct super_block *sb,
2705 extern void ext4_get_group_no_and_offset(struct super_block *sb,
2709 extern ext4_group_t ext4_get_group_number(struct super_block *sb,
2712 extern int ext4_bg_has_super(struct super_block *sb, ext4_group_t group);
2713 extern unsigned long ext4_bg_num_gdb(struct super_block *sb,
2723 extern struct ext4_group_desc * ext4_get_group_desc(struct super_block * sb,
2726 extern struct ext4_group_info *ext4_get_group_info(struct super_block *sb,
2728 extern int ext4_should_retry_alloc(struct super_block *sb, int *retries);
2730 extern struct buffer_head *ext4_read_block_bitmap_nowait(struct super_block *sb,
2733 extern int ext4_wait_block_bitmap(struct super_block *sb,
2736 extern struct buffer_head *ext4_read_block_bitmap(struct super_block *sb,
2738 extern unsigned ext4_free_clusters_after_init(struct super_block *sb,
2839 static inline unsigned char get_dtype(struct super_block *sb, int filetype)
2841 if (!ext4_has_feature_filetype(sb) || filetype >= EXT4_FT_MAX)
2857 extern int ext4_mark_inode_used(struct super_block *sb, int ino);
2879 extern int ext4_init_inode_table(struct super_block *sb,
2885 void ext4_fc_init(struct super_block *sb, journal_t *journal);
2899 void ext4_fc_mark_ineligible(struct super_block *sb, int reason, handle_t *handle);
2903 bool ext4_fc_replay_check_excluded(struct super_block *sb, ext4_fsblk_t block);
2904 void ext4_fc_replay_cleanup(struct super_block *sb);
2908 int ext4_fc_record_regions(struct super_block *sb, int ino,
2923 extern ext4_group_t ext4_mb_prefetch(struct super_block *sb,
2926 extern void ext4_mb_prefetch_fini(struct super_block *sb, ext4_group_t group,
2932 extern int ext4_mb_alloc_groupinfo(struct super_block *sb,
2934 extern int ext4_mb_add_groupinfo(struct super_block *sb,
2936 extern int ext4_group_add_blocks(handle_t *handle, struct super_block *sb,
2939 extern void ext4_process_freed_data(struct super_block *sb, tid_t commit_tid);
2940 extern void ext4_mb_mark_bb(struct super_block *sb, ext4_fsblk_t block,
2982 extern struct inode *__ext4_iget(struct super_block *sb, unsigned long ino,
2986 #define ext4_iget(sb, ino, flags) \
2987 __ext4_iget((sb), (ino), (flags), __func__, __LINE__)
3002 extern int ext4_get_fc_inode_loc(struct super_block *sb, unsigned long ino,
3041 int ext4_update_overhead(struct super_block *sb, bool force);
3042 int ext4_force_shutdown(struct super_block *sb, u32 flags);
3072 extern int ext4_group_add(struct super_block *sb,
3074 extern int ext4_group_extend(struct super_block *sb,
3077 extern int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count);
3078 extern unsigned int ext4_list_backups(struct super_block *sb,
3083 extern struct buffer_head *ext4_sb_bread(struct super_block *sb,
3085 extern struct buffer_head *ext4_sb_bread_unmovable(struct super_block *sb,
3092 extern void ext4_sb_breadahead_unmovable(struct super_block *sb, sector_t block);
3094 extern int ext4_calculate_overhead(struct super_block *sb);
3095 extern __le32 ext4_superblock_csum(struct super_block *sb,
3097 extern void ext4_superblock_csum_set(struct super_block *sb);
3098 extern int ext4_alloc_flex_bg_array(struct super_block *sb,
3100 extern const char *ext4_decode_error(struct super_block *sb, int errno,
3102 extern void ext4_mark_group_bitmap_corrupted(struct super_block *sb,
3105 extern unsigned int ext4_num_base_meta_blocks(struct super_block *sb,
3148 #define ext4_abort(sb, err, fmt, a...) \
3149 __ext4_error((sb), __func__, __LINE__, true, (err), 0, (fmt), ## a)
3160 #define ext4_error(sb, fmt, ...) \
3161 __ext4_error((sb), __func__, __LINE__, false, 0, 0, (fmt), \
3163 #define ext4_error_err(sb, err, fmt, ...) \
3164 __ext4_error((sb), __func__, __LINE__, false, (err), 0, (fmt), \
3166 #define ext4_warning(sb, fmt, ...) \
3167 __ext4_warning(sb, __func__, __LINE__, fmt, ##__VA_ARGS__)
3170 #define ext4_msg(sb, level, fmt, ...) \
3171 __ext4_msg(sb, level, fmt, ##__VA_ARGS__)
3172 #define dump_mmp_msg(sb, mmp, msg) \
3173 __dump_mmp_msg(sb, mmp, __func__, __LINE__, msg)
3174 #define ext4_grp_locked_error(sb, grp, ino, block, fmt, ...) \
3175 __ext4_grp_locked_error(__func__, __LINE__, sb, grp, ino, block, \
3195 #define ext4_error(sb, fmt, ...) \
3198 __ext4_error(sb, "", 0, false, 0, 0, " "); \
3200 #define ext4_error_err(sb, err, fmt, ...) \
3203 __ext4_error(sb, "", 0, false, err, 0, " "); \
3205 #define ext4_warning(sb, fmt, ...) \
3208 __ext4_warning(sb, "", 0, " "); \
3215 #define ext4_msg(sb, level, fmt, ...) \
3218 __ext4_msg(sb, "", " "); \
3220 #define dump_mmp_msg(sb, mmp, msg) \
3221 __dump_mmp_msg(sb, mmp, "", 0, "")
3222 #define ext4_grp_locked_error(sb, grp, ino, block, fmt, ...) \
3225 __ext4_grp_locked_error("", 0, sb, grp, ino, block, " "); \
3230 extern ext4_fsblk_t ext4_block_bitmap(struct super_block *sb,
3232 extern ext4_fsblk_t ext4_inode_bitmap(struct super_block *sb,
3234 extern ext4_fsblk_t ext4_inode_table(struct super_block *sb,
3236 extern __u32 ext4_free_group_clusters(struct super_block *sb,
3238 extern __u32 ext4_free_inodes_count(struct super_block *sb,
3240 extern __u32 ext4_used_dirs_count(struct super_block *sb,
3242 extern __u32 ext4_itable_unused_count(struct super_block *sb,
3244 extern void ext4_block_bitmap_set(struct super_block *sb,
3246 extern void ext4_inode_bitmap_set(struct super_block *sb,
3248 extern void ext4_inode_table_set(struct super_block *sb,
3250 extern void ext4_free_group_clusters_set(struct super_block *sb,
3253 extern void ext4_free_inodes_set(struct super_block *sb,
3255 extern void ext4_used_dirs_set(struct super_block *sb,
3257 extern void ext4_itable_unused_set(struct super_block *sb,
3259 extern int ext4_group_desc_csum_verify(struct super_block *sb, __u32 group,
3261 extern void ext4_group_desc_csum_set(struct super_block *sb, __u32 group,
3263 extern int ext4_register_li_request(struct super_block *sb,
3266 static inline int ext4_has_metadata_csum(struct super_block *sb)
3268 WARN_ON_ONCE(ext4_has_feature_metadata_csum(sb) &&
3269 !EXT4_SB(sb)->s_chksum_driver);
3271 return ext4_has_feature_metadata_csum(sb) &&
3272 (EXT4_SB(sb)->s_chksum_driver != NULL);
3275 static inline int ext4_has_group_desc_csum(struct super_block *sb)
3277 return ext4_has_feature_gdt_csum(sb) || ext4_has_metadata_csum(sb);
3321 static inline loff_t ext4_isize(struct super_block *sb,
3324 if (ext4_has_feature_largedir(sb) ||
3343 static inline ext4_group_t ext4_get_groups_count(struct super_block *sb)
3345 ext4_group_t ngroups = EXT4_SB(sb)->s_groups_count;
3362 #define ext4_std_error(sb, errno) \
3365 __ext4_std_error((sb), __func__, __LINE__, (errno)); \
3463 static inline spinlock_t *ext4_group_lock_ptr(struct super_block *sb,
3466 return bgl_lock_ptr(EXT4_SB(sb)->s_blockgroup_lock, group);
3478 static inline void ext4_lock_group(struct super_block *sb, ext4_group_t group)
3480 spinlock_t *lock = ext4_group_lock_ptr(sb, group);
3486 atomic_add_unless(&EXT4_SB(sb)->s_lock_busy, -1, 0);
3492 atomic_add_unless(&EXT4_SB(sb)->s_lock_busy, 1,
3498 static inline void ext4_unlock_group(struct super_block *sb,
3501 spin_unlock(ext4_group_lock_ptr(sb, group));
3505 static inline bool ext4_quota_capable(struct super_block *sb)
3507 return (test_opt(sb, QUOTA) || ext4_has_feature_quota(sb));
3510 static inline bool ext4_is_quota_journalled(struct super_block *sb)
3512 struct ext4_sb_info *sbi = EXT4_SB(sb);
3514 return (ext4_has_feature_quota(sb) ||
3517 int ext4_enable_quotas(struct super_block *sb);
3632 static inline void ext4_set_de_type(struct super_block *sb,
3635 if (ext4_has_feature_filetype(sb))
3652 extern int ext4_register_sysfs(struct super_block *sb);
3653 extern void ext4_unregister_sysfs(struct super_block *sb);
3658 extern void ext4_release_system_zone(struct super_block *sb);
3659 extern int ext4_setup_system_zone(struct super_block *sb);
3667 extern int ext4_sb_block_valid(struct super_block *sb, struct inode *inode,
3768 extern void ext4_orphan_cleanup(struct super_block *sb,
3770 extern void ext4_release_orphan_info(struct super_block *sb);
3771 extern int ext4_init_orphan_info(struct super_block *sb);
3772 extern int ext4_orphan_file_empty(struct super_block *sb);
3801 extern int ext4_resize_begin(struct super_block *sb);
3802 extern int ext4_resize_end(struct super_block *sb, bool update_backups);