29#define FSCK_UNMATCHED_EXTENT 0x00000001
30#define FSCK_INLINE_INODE 0x00000002
53#define SB_MASK(i) (1 << (i))
54#define SB_MASK_ALL (SB_MASK(SB0_ADDR) | SB_MASK(SB1_ADDR))
153struct selabel_handle;
204 unsigned int,
int *);
340 const unsigned char *,
int,
nid_t,
int,
block_t *,
int);
unsigned int __u32
Definition: blkid_types.h:14
#define left
Definition: dict.c:51
unsigned int u32
Definition: ext4_utils.h:68
unsigned short int u16
Definition: ext4_utils.h:69
unsigned long long u64
Definition: ext4_utils.h:63
unsigned char u8
Definition: ext4_utils.h:70
static bool is_set_ckpt_flags(struct f2fs_checkpoint *cp, unsigned int f)
Definition: f2fs.h:349
static struct f2fs_checkpoint * F2FS_CKPT(struct f2fs_sb_info *sbi)
Definition: f2fs.h:300
__le32 nid
Definition: f2fs_fs.h:0
#define NEW_ADDR
Definition: f2fs_fs.h:663
#define NULL_ADDR
Definition: f2fs_fs.h:662
u32 block_t
Definition: f2fs_fs.h:122
#define F2FS_PRINT_NAMELEN
Definition: f2fs_fs.h:927
u32 nid_t
Definition: f2fs_fs.h:123
#define F2FS_NAME_LEN
Definition: f2fs_fs.h:924
unsigned long pgoff_t
Definition: f2fs_fs.h:124
#define CP_UMOUNT_FLAG
Definition: f2fs_fs.h:841
FILE_TYPE
Definition: f2fs_fs.h:1434
#define COMPRESS_ADDR
Definition: f2fs_fs.h:664
void print_node_info(struct f2fs_sb_info *, struct f2fs_node *, int)
Definition: mount.c:398
int update_inode(struct f2fs_sb_info *sbi, struct f2fs_node *inode, u32 *blkaddr)
Definition: node.c:336
seg_type
Definition: fsck.h:145
@ SEG_TYPE_MAX
Definition: fsck.h:150
@ SEG_TYPE_CUR_NODE
Definition: fsck.h:149
@ SEG_TYPE_DATA
Definition: fsck.h:146
@ SEG_TYPE_NODE
Definition: fsck.h:148
@ SEG_TYPE_CUR_DATA
Definition: fsck.h:147
SB_ADDR
Definition: fsck.h:47
@ SB1_ADDR
Definition: fsck.h:49
@ SB_MAX_ADDR
Definition: fsck.h:50
@ SB0_ADDR
Definition: fsck.h:48
void update_nat_blkaddr(struct f2fs_sb_info *, nid_t, nid_t, block_t)
Definition: mount.c:2557
int fsck_chk_node_blk(struct f2fs_sb_info *, struct f2fs_inode *, u32, enum FILE_TYPE, enum NODE_TYPE, u32 *, struct f2fs_compr_blk_cnt *, struct child_info *)
Definition: fsck.c:616
int find_next_free_block(struct f2fs_sb_info *, u64 *, int, int, bool)
Definition: mount.c:3036
wr_addr_type
Definition: fsck.h:318
@ WR_NORMAL
Definition: fsck.h:319
@ WR_NULL_ADDR
Definition: fsck.h:321
@ WR_COMPRESS_ADDR
Definition: fsck.h:323
@ WR_COMPRESS_DATA
Definition: fsck.h:320
@ WR_NEW_ADDR
Definition: fsck.h:322
void nullify_nat_entry(struct f2fs_sb_info *, u32)
Definition: mount.c:3288
void fsck_chk_checkpoint(struct f2fs_sb_info *sbi)
Definition: fsck.c:2577
void restore_curseg_warm_node_info(struct f2fs_sb_info *)
Definition: mount.c:3260
int reserve_new_block(struct f2fs_sb_info *, block_t *, struct f2fs_summary *, int, bool)
Definition: segment.c:23
void update_free_segments(struct f2fs_sb_info *)
Definition: mount.c:120
int fsck_chk_didnode_blk(struct f2fs_sb_info *, struct f2fs_inode *, enum FILE_TYPE, struct f2fs_node *, u32 *, struct f2fs_compr_blk_cnt *, struct child_info *)
Definition: fsck.c:1618
int update_block(struct f2fs_sb_info *sbi, void *buf, u32 *blkaddr, struct f2fs_node *node_blk)
Definition: segment.c:767
int get_dnode_of_data(struct f2fs_sb_info *, struct dnode_of_data *, pgoff_t, int)
Definition: node.c:250
int fsck_chk_data_blk(struct f2fs_sb_info *, struct f2fs_inode *, u32, struct child_info *, int, enum FILE_TYPE, u32, u16, u8, struct f2fs_node *)
Definition: fsck.c:2198
void print_inode_info(struct f2fs_sb_info *, struct f2fs_node *, int)
Definition: mount.c:272
int f2fs_set_sit_bitmap(struct f2fs_sb_info *, u32)
Definition: fsck.c:77
struct f2fs_summary_block * get_sum_block(struct f2fs_sb_info *, unsigned int, int *)
Definition: mount.c:2390
int f2fs_add_link(struct f2fs_sb_info *, struct f2fs_node *, const unsigned char *, int, nid_t, int, block_t *, int)
Definition: dir.c:221
int f2fs_do_mount(struct f2fs_sb_info *)
Definition: mount.c:4048
@ ENEED_ARG
Definition: fsck.h:42
@ EUNKNOWN_ARG
Definition: fsck.h:44
@ EUNKNOWN_OPT
Definition: fsck.h:43
@ NOERROR
Definition: fsck.h:40
@ EWRONG_OPT
Definition: fsck.h:41
NODE_TYPE
Definition: fsck.h:130
@ TYPE_INDIRECT_NODE
Definition: fsck.h:133
@ TYPE_DOUBLE_INDIRECT_NODE
Definition: fsck.h:134
@ TYPE_DIRECT_NODE
Definition: fsck.h:132
@ TYPE_XATTR
Definition: fsck.h:135
@ TYPE_INODE
Definition: fsck.h:131
int is_digits(char *optarg)
Definition: main.c:190
int fsck_chk_meta(struct f2fs_sb_info *sbi)
Definition: fsck.c:2461
void write_checkpoints(struct f2fs_sb_info *)
Definition: mount.c:3473
void write_all_xattrs(struct f2fs_sb_info *sbi, struct f2fs_node *inode, __u32 hsize, void *txattr_addr)
Definition: xattr.c:85
void print_cp_state(u32)
Definition: mount.c:654
bool is_inconsistent_error(struct f2fs_super_block *)
Definition: mount.c:1477
void flush_journal_entries(struct f2fs_sb_info *)
Definition: mount.c:2896
void flush_sit_entries(struct f2fs_sb_info *)
Definition: mount.c:2908
void update_data_blkaddr(struct f2fs_sb_info *, nid_t, u16, block_t, struct f2fs_node *)
Definition: mount.c:2489
int f2fs_clear_sit_bitmap(struct f2fs_sb_info *, u32)
Definition: fsck.c:84
int f2fs_build_file(struct f2fs_sb_info *, struct dentry *)
Definition: segment.c:609
void get_current_sit_page(struct f2fs_sb_info *, unsigned int, struct f2fs_sit_block *)
Definition: mount.c:2291
int fsck_chk_curseg_info(struct f2fs_sb_info *)
Definition: fsck.c:3600
int fsck_sanity_check_nid(struct f2fs_sb_info *, u32, enum FILE_TYPE, enum NODE_TYPE)
Definition: fsck.c:572
unsigned int start_bidx_of_node(unsigned int, struct f2fs_node *)
Definition: dump.c:851
void rewrite_sit_area_bitmap(struct f2fs_sb_info *)
Definition: mount.c:2774
void zero_journal_entries(struct f2fs_sb_info *)
Definition: mount.c:3221
void f2fs_filesize_update(struct f2fs_sb_info *, nid_t, u64)
Definition: segment.c:442
void dump_node_scan_disk(struct f2fs_sb_info *sbi, nid_t nid)
Definition: dump.c:754
int f2fs_find_path(struct f2fs_sb_info *, char *, nid_t *)
Definition: dir.c:866
void update_sum_entry(struct f2fs_sb_info *, block_t, struct f2fs_summary *)
Definition: mount.c:2173
bool is_checkpoint_stop(struct f2fs_super_block *, bool)
Definition: mount.c:1463
bool is_sit_bitmap_set(struct f2fs_sb_info *sbi, u32 blk_addr)
Definition: dump.c:742
int f2fs_resize(struct f2fs_sb_info *)
Definition: resize.c:753
int fsck_chk_root_inode(struct f2fs_sb_info *)
Definition: fsck.c:667
u64 f2fs_write_compress_data(struct f2fs_sb_info *, nid_t, u8 *, u64, pgoff_t)
Definition: segment.c:427
void print_raw_sb_info(struct f2fs_super_block *)
Definition: mount.c:471
int f2fs_sparse_initialize_meta(struct f2fs_sb_info *)
Definition: mount.c:4311
int fsck_sanity_check_nat(struct f2fs_sb_info *sbi, u32 nid)
Definition: fsck.c:450
@ FSCK_SUCCESS
Definition: fsck.h:17
@ FSCK_ERRORS_LEFT_UNCORRECTED
Definition: fsck.h:20
@ FSCK_SHARED_LIB_ERROR
Definition: fsck.h:24
@ FSCK_OPERATIONAL_ERROR
Definition: fsck.h:21
@ FSCK_USER_CANCELLED
Definition: fsck.h:23
@ FSCK_ERROR_CORRECTED
Definition: fsck.h:18
@ FSCK_SYSTEM_SHOULD_REBOOT
Definition: fsck.h:19
@ FSCK_USAGE_OR_SYNTAX_ERROR
Definition: fsck.h:22
struct hardlink_cache_entry * f2fs_search_hardlink(struct f2fs_sb_info *sbi, struct dentry *de)
Definition: dir.c:691
int dump_node(struct f2fs_sb_info *, nid_t, int, char *, int, int, char *)
Definition: dump.c:787
void rewrite_current_sit_page(struct f2fs_sb_info *, unsigned int, struct f2fs_sit_block *)
Definition: mount.c:2299
int get_sum_entry(struct f2fs_sb_info *, u32, struct f2fs_summary *)
Definition: mount.c:2445
unsigned int get_usable_seg_count(struct f2fs_sb_info *)
Definition: mount.c:99
void set_data_blkaddr(struct dnode_of_data *)
Definition: node.c:97
void duplicate_checkpoint(struct f2fs_sb_info *)
Definition: mount.c:3334
int fsck_chk_quota_files(struct f2fs_sb_info *)
Definition: fsck.c:2374
void write_raw_cp_blocks(struct f2fs_sb_info *sbi, struct f2fs_checkpoint *cp, int which)
Definition: mount.c:3483
void update_curseg_info(struct f2fs_sb_info *, int)
Definition: mount.c:3214
void get_node_info(struct f2fs_sb_info *, nid_t, struct node_info *)
Definition: mount.c:2604
struct seg_entry * get_seg_entry(struct f2fs_sb_info *, unsigned int)
Definition: mount.c:2359
int flush_nat_journal_entries(struct f2fs_sb_info *sbi)
Definition: mount.c:2859
int f2fs_mkdir(struct f2fs_sb_info *, struct dentry *)
Definition: dir.c:856
int fsck_chk_orphan_node(struct f2fs_sb_info *)
Definition: fsck.c:2250
int f2fs_ra_meta_pages(struct f2fs_sb_info *, block_t, int, int)
Definition: mount.c:857
@ PREEN_MODE_MAX
Definition: fsck.h:36
@ PREEN_MODE_2
Definition: fsck.h:35
@ PREEN_MODE_0
Definition: fsck.h:33
@ PREEN_MODE_1
Definition: fsck.h:34
void ssa_dump(struct f2fs_sb_info *, int, int)
Definition: dump.c:180
u64 f2fs_quota_size(struct quota_file *)
Definition: segment.c:154
void print_ckpt_info(struct f2fs_sb_info *)
Definition: mount.c:593
void build_sit_area_bitmap(struct f2fs_sb_info *)
Definition: mount.c:2736
int inode_set_selinux(struct f2fs_sb_info *, u32, const char *)
Definition: xattr.c:265
int fsck_chk_dentry_blk(struct f2fs_sb_info *, int, u32, struct child_info *, int, int, struct f2fs_node *)
Definition: fsck.c:2149
u32 update_nat_bits_flags(struct f2fs_super_block *, struct f2fs_checkpoint *, u32)
Definition: mount.c:1739
int fsck_chk_inline_dentries(struct f2fs_sb_info *, struct f2fs_node *, struct child_info *)
Definition: fsck.c:2105
void fsck_chk_inode_blk(struct f2fs_sb_info *, u32, enum FILE_TYPE, struct f2fs_node *, u32 *, struct f2fs_compr_blk_cnt *, struct node_info *, struct child_info *)
Definition: fsck.c:911
void nat_dump(struct f2fs_sb_info *, nid_t, nid_t)
Definition: dump.c:37
int new_data_block(struct f2fs_sb_info *, void *, struct dnode_of_data *, int)
Definition: segment.c:120
u32 get_free_segments(struct f2fs_sb_info *)
Definition: mount.c:106
u64 f2fs_write_addrtag(struct f2fs_sb_info *, nid_t, pgoff_t, unsigned int)
Definition: segment.c:433
void sit_dump(struct f2fs_sb_info *, unsigned int, unsigned int)
Definition: dump.c:112
void * read_all_xattrs(struct f2fs_sb_info *, struct f2fs_node *, bool)
Definition: xattr.c:20
void write_curseg_info(struct f2fs_sb_info *)
Definition: mount.c:3229
int f2fs_clear_main_bitmap(struct f2fs_sb_info *, u32)
Definition: fsck.c:62
u64 f2fs_write(struct f2fs_sb_info *, nid_t, u8 *, u64, pgoff_t)
Definition: segment.c:421
void write_nat_bits(struct f2fs_sb_info *, struct f2fs_super_block *, struct f2fs_checkpoint *, int)
Definition: mount.c:1758
int f2fs_create(struct f2fs_sb_info *, struct dentry *)
Definition: dir.c:716
int fsck_verify(struct f2fs_sb_info *)
Definition: fsck.c:3657
void f2fs_do_umount(struct f2fs_sb_info *)
Definition: mount.c:4214
int fsck_chk_quota_node(struct f2fs_sb_info *)
Definition: fsck.c:2328
int f2fs_symlink(struct f2fs_sb_info *, struct dentry *)
Definition: dir.c:861
int dump_info_from_blkaddr(struct f2fs_sb_info *, u32)
Definition: dump.c:1006
void write_checkpoint(struct f2fs_sb_info *)
Definition: mount.c:3375
int fsck_chk_idnode_blk(struct f2fs_sb_info *, struct f2fs_inode *, enum FILE_TYPE, struct f2fs_node *, u32 *, struct f2fs_compr_blk_cnt *, struct child_info *)
Definition: fsck.c:1575
void fsck_free(struct f2fs_sb_info *)
Definition: fsck.c:3900
void fsck_update_sb_flags(struct f2fs_sb_info *sbi)
Definition: fsck.c:2423
int f2fs_sload(struct f2fs_sb_info *)
Definition: sload.c:345
bool f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi, block_t blkaddr, int type)
Definition: mount.c:818
u64 f2fs_read(struct f2fs_sb_info *, nid_t, u8 *, u64, pgoff_t)
Definition: segment.c:173
void pretty_print_filename(const u8 *raw_name, u32 len, char out[F2FS_PRINT_NAMELEN], int enc_name)
Definition: fsck.c:1688
block_t new_node_block(struct f2fs_sb_info *, struct dnode_of_data *, unsigned int)
Definition: node.c:115
void update_superblock(struct f2fs_super_block *, int)
Definition: mount.c:907
void fsck_chk_and_fix_write_pointers(struct f2fs_sb_info *)
Definition: fsck.c:3581
void move_curseg_info(struct f2fs_sb_info *, u64, int)
Definition: mount.c:3205
void fsck_init(struct f2fs_sb_info *)
Definition: fsck.c:2590
bool is_usable_seg(struct f2fs_sb_info *, unsigned int)
void build_nat_area_bitmap(struct f2fs_sb_info *)
Definition: mount.c:3509
void make_dentry_ptr(struct f2fs_dentry_ptr *, struct f2fs_node *, void *, int)
Definition: dir.c:38
static bool need_fsync_data_record(struct f2fs_sb_info *sbi)
Definition: fsck.h:155
void f2fs_alloc_nid(struct f2fs_sb_info *, nid_t *)
Definition: node.c:19
int convert_inline_dentry(struct f2fs_sb_info *sbi, struct f2fs_node *node, block_t *p_blkaddr)
Definition: dir.c:582
nid_t f2fs_lookup(struct f2fs_sb_info *, struct f2fs_node *, u8 *, int)
Definition: dir.c:182
void move_one_curseg_info(struct f2fs_sb_info *sbi, u64 from, int left, int i)
Definition: mount.c:3150
pgoff_t current_nat_addr(struct f2fs_sb_info *, nid_t, int *)
Definition: mount.c:1624
int f2fs_set_main_bitmap(struct f2fs_sb_info *, u32, int)
Definition: fsck.c:33
int f2fs_rebuild_qf_inode(struct f2fs_sb_info *sbi, int qtype)
Definition: node.c:43
int f2fs_defragment(struct f2fs_sb_info *, u64, u64, u64, int)
Definition: defrag.c:64
void save_curseg_warm_node_info(struct f2fs_sb_info *)
Definition: mount.c:3250
int flush_sit_journal_entries(struct f2fs_sb_info *sbi)
Definition: mount.c:2825
int fsck_chk_dnode_blk(struct f2fs_sb_info *, struct f2fs_inode *, u32, enum FILE_TYPE, struct f2fs_node *, u32 *, struct f2fs_compr_blk_cnt *, struct child_info *, struct node_info *)
Definition: fsck.c:1510
uint8_t type
Definition: pairing_connection.h:0
u32 pp_ino
Definition: fsck.h:78
char p_name[F2FS_NAME_LEN+1]
Definition: fsck.h:77
u8 dot
Definition: fsck.h:73
u32 links
Definition: fsck.h:70
u32 pgofs
Definition: fsck.h:72
u32 i_namelen
Definition: fsck.h:81
struct extent_info ei
Definition: fsck.h:79
u32 last_blk
Definition: fsck.h:80
u32 files
Definition: fsck.h:71
u8 dir_level
Definition: fsck.h:75
u32 state
Definition: fsck.h:69
u8 dotdot
Definition: fsck.h:74
u32 p_ino
Definition: fsck.h:76
int start_ssa
Definition: fsck.h:274
char * base_path
Definition: fsck.h:279
int use_root_nid
Definition: fsck.h:278
int start_sit
Definition: fsck.h:272
int32_t blk_addr
Definition: fsck.h:276
nid_t scan_nid
Definition: fsck.h:277
nid_t end_nat
Definition: fsck.h:271
int end_ssa
Definition: fsck.h:275
int end_sit
Definition: fsck.h:273
nid_t nid
Definition: fsck.h:269
nid_t start_nat
Definition: fsck.h:270
u32 fofs
Definition: fsck.h:63
u32 len
Definition: fsck.h:65
u32 blk
Definition: fsck.h:64
Definition: f2fs_fs.h:845
Definition: f2fs_fs.h:1014
char name[F2FS_NAME_LEN+1]
Definition: fsck.h:85
int depth
Definition: fsck.h:86
struct f2fs_dentry * next
Definition: fsck.h:87
u64 sit_valid_blocks
Definition: fsck.h:101
u32 valid_inode_cnt
Definition: fsck.h:99
u32 sit_free_segs
Definition: fsck.h:102
u64 valid_blk_cnt
Definition: fsck.h:96
u32 wp_fixed
Definition: fsck.h:103
u32 valid_nat_entry_cnt
Definition: fsck.h:97
u32 multi_hard_link_files
Definition: fsck.h:100
u32 wp_inconsistent_zones
Definition: fsck.h:104
u32 valid_node_cnt
Definition: fsck.h:98
u64 checked_node_cnt
Definition: fsck.h:95
char * main_seg_usage
Definition: fsck.h:109
u64 nr_main_blks
Definition: fsck.h:118
struct hard_link_node * hard_link_list_head
Definition: fsck.h:107
u64 main_area_bitmap_sz
Definition: fsck.h:114
struct f2fs_sb_info sbi
Definition: fsck.h:91
struct orphan_info orphani
Definition: fsck.h:93
u32 dentry_depth
Definition: fsck.h:121
u32 nat_valid_inode_cnt
Definition: fsck.h:125
struct f2fs_dentry * dentry_end
Definition: fsck.h:123
struct quota_ctx * qctx
Definition: fsck.h:127
struct f2fs_dentry * dentry
Definition: fsck.h:122
struct f2fs_nat_entry * entries
Definition: fsck.h:124
char * nat_area_bitmap
Definition: fsck.h:111
char * main_area_bitmap
Definition: fsck.h:110
u32 nat_area_bitmap_sz
Definition: fsck.h:115
struct f2fs_fsck::chk_result chk
char * sit_area_bitmap
Definition: fsck.h:112
u32 sit_area_bitmap_sz
Definition: fsck.h:116
u32 nr_nat_entries
Definition: fsck.h:119
Definition: f2fs_fs.h:1034
Definition: f2fs_fs.h:1141
Definition: f2fs_fs.h:1122
Definition: f2fs_fs.h:1202
Definition: f2fs_fs.h:1345
Definition: f2fs_fs.h:1227
Definition: f2fs_fs.h:773
struct hard_link_node * next
Definition: fsck.h:142
u32 links
Definition: fsck.h:140
u32 actual_links
Definition: fsck.h:141
u32 nid
Definition: fsck.h:139
u32 * ino_list
Definition: fsck.h:59
u32 nr_inodes
Definition: fsck.h:58
Definition: quotaio.h:115