Lines Matching defs:sbi

119 static bool f2fs_enable_inode_chksum(struct f2fs_sb_info *sbi, struct page *page)
123 if (!f2fs_sb_has_inode_chksum(sbi))
136 static __u32 f2fs_inode_chksum(struct f2fs_sb_info *sbi, struct page *page)
147 chksum = f2fs_chksum(sbi, sbi->s_chksum_seed, (__u8 *)&ino,
149 chksum_seed = f2fs_chksum(sbi, chksum, (__u8 *)&gen, sizeof(gen));
151 chksum = f2fs_chksum(sbi, chksum_seed, (__u8 *)ri, offset);
152 chksum = f2fs_chksum(sbi, chksum, (__u8 *)&dummy_cs, cs_size);
154 chksum = f2fs_chksum(sbi, chksum, (__u8 *)ri + offset,
159 bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page)
164 if (unlikely(is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN)))
168 if (!f2fs_enable_inode_chksum(sbi, page))
170 if (!f2fs_enable_inode_chksum(sbi, page) ||
178 calculated = f2fs_inode_chksum(sbi, page);
181 f2fs_warn(sbi, "checksum invalid, nid = %lu, ino_of_node = %x, %x vs. %x",
188 void f2fs_inode_chksum_set(struct f2fs_sb_info *sbi, struct page *page)
192 if (!f2fs_enable_inode_chksum(sbi, page))
195 ri->i_inode_checksum = cpu_to_le32(f2fs_inode_chksum(sbi, page));
201 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
205 f2fs_warn(sbi,
212 f2fs_warn(sbi,
220 f2fs_warn(sbi,
265 f2fs_warn(sbi, "%s: inode (ino=%lx) has unsupported compress level: %u, run fsck to fix",
272 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
279 f2fs_warn(sbi, "%s: corrupted inode i_blocks i_ino=%lx iblocks=%llu, run fsck to fix.",
285 f2fs_warn(sbi, "%s: corrupted inode footer i_ino=%lx, ino,nid: [%u, %u] run fsck to fix.",
292 if (!f2fs_sb_has_extra_attr(sbi)) {
293 f2fs_warn(sbi, "%s: inode (ino=%lx) is with extra_attr, but extra_attr feature is off",
300 f2fs_warn(sbi, "%s: inode (ino=%lx) has corrupted i_extra_isize: %d, max: %zu",
305 if (f2fs_sb_has_flexible_inline_xattr(sbi) &&
309 f2fs_warn(sbi, "%s: inode (ino=%lx) has corrupted i_inline_xattr_size: %d, max: %lu",
314 if (f2fs_sb_has_compression(sbi) &&
323 if (!f2fs_sb_has_extra_attr(sbi)) {
324 if (f2fs_sb_has_project_quota(sbi)) {
325 f2fs_warn(sbi, "%s: corrupted inode ino=%lx, wrong feature flag: %u, run fsck to fix.",
329 if (f2fs_sb_has_inode_chksum(sbi)) {
330 f2fs_warn(sbi, "%s: corrupted inode ino=%lx, wrong feature flag: %u, run fsck to fix.",
334 if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
335 f2fs_warn(sbi, "%s: corrupted inode ino=%lx, wrong feature flag: %u, run fsck to fix.",
339 if (f2fs_sb_has_inode_crtime(sbi)) {
340 f2fs_warn(sbi, "%s: corrupted inode ino=%lx, wrong feature flag: %u, run fsck to fix.",
344 if (f2fs_sb_has_compression(sbi)) {
345 f2fs_warn(sbi, "%s: corrupted inode ino=%lx, wrong feature flag: %u, run fsck to fix.",
352 f2fs_warn(sbi, "%s: inode (ino=%lx, mode=%u) should not have inline_data, run fsck to fix",
358 f2fs_warn(sbi, "%s: inode (ino=%lx, mode=%u) should not have inline_dentry, run fsck to fix",
363 if ((fi->i_flags & F2FS_CASEFOLD_FL) && !f2fs_sb_has_casefold(sbi)) {
364 f2fs_warn(sbi, "%s: inode (ino=%lx) has casefold flag, but casefold feature is off",
369 if (fi->i_xattr_nid && f2fs_check_nid_range(sbi, fi->i_xattr_nid)) {
370 f2fs_warn(sbi, "%s: inode (ino=%lx) has corrupted i_xattr_nid: %u, run fsck to fix.",
389 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
396 if (f2fs_check_nid_range(sbi, inode->i_ino))
399 node_page = f2fs_get_node_page(sbi, inode->i_ino);
437 if (f2fs_sb_has_flexible_inline_xattr(sbi)) {
455 set_sbi_flag(sbi, SBI_NEED_FSCK);
456 f2fs_handle_error(sbi, ERROR_CORRUPTED_INODE);
474 if (!f2fs_need_inode_block_update(sbi, inode->i_ino))
480 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_project_quota(sbi) &&
487 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_inode_crtime(sbi) &&
493 if (f2fs_has_extra_attr(inode) && f2fs_sb_has_compression(sbi) &&
517 f2fs_handle_error(sbi, ERROR_CORRUPTED_INODE);
536 static bool is_meta_ino(struct f2fs_sb_info *sbi, unsigned int ino)
538 return ino == F2FS_NODE_INO(sbi) || ino == F2FS_META_INO(sbi) ||
539 ino == F2FS_COMPRESS_INO(sbi);
544 struct f2fs_sb_info *sbi = F2FS_SB(sb);
553 if (is_meta_ino(sbi, ino)) {
554 f2fs_err(sbi, "inaccessible inode: %lu, run fsck to repair", ino);
555 set_sbi_flag(sbi, SBI_NEED_FSCK);
559 f2fs_handle_error(sbi, ERROR_CORRUPTED_INODE);
567 if (is_meta_ino(sbi, ino))
574 if (ino == F2FS_NODE_INO(sbi)) {
577 } else if (ino == F2FS_META_INO(sbi)) {
580 } else if (ino == F2FS_COMPRESS_INO(sbi)) {
742 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
746 node_page = f2fs_get_node_page(sbi, inode->i_ino);
756 f2fs_stop_checkpoint(sbi, false, STOP_CP_REASON_UPDATE_INODE);
765 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
767 if (inode->i_ino == F2FS_NODE_INO(sbi) ||
768 inode->i_ino == F2FS_META_INO(sbi))
778 if (!f2fs_is_checkpoint_ready(sbi))
787 f2fs_balance_fs(sbi, true);
796 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
815 test_opt(sbi, COMPRESS_CACHE) && f2fs_compressed_file(inode))
816 f2fs_invalidate_compress_pages(sbi, inode->i_ino);
818 if (inode->i_ino == F2FS_NODE_INO(sbi) ||
819 inode->i_ino == F2FS_META_INO(sbi) ||
820 inode->i_ino == F2FS_COMPRESS_INO(sbi))
823 f2fs_bug_on(sbi, get_dirty_pages(inode));
834 set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
837 f2fs_remove_ino_entry(sbi, inode->i_ino, APPEND_INO);
838 f2fs_remove_ino_entry(sbi, inode->i_ino, UPDATE_INO);
839 f2fs_remove_ino_entry(sbi, inode->i_ino, FLUSH_INO);
841 if (!is_sbi_flag_set(sbi, SBI_IS_FREEZING)) {
851 if (time_to_inject(sbi, FAULT_EVICT_INODE))
855 f2fs_lock_op(sbi);
857 f2fs_unlock_op(sbi);
871 set_sbi_flag(sbi, SBI_NEED_FSCK);
885 set_sbi_flag(sbi, SBI_QUOTA_NEED_REPAIR);
899 if (likely(!f2fs_cp_error(sbi) &&
900 !is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
901 f2fs_bug_on(sbi, is_inode_flag_set(inode, FI_DIRTY_INODE));
907 invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino,
910 invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
913 f2fs_add_ino_entry(sbi, inode->i_ino, APPEND_INO);
915 f2fs_add_ino_entry(sbi, inode->i_ino, UPDATE_INO);
918 f2fs_alloc_nid_failed(sbi, inode->i_ino);
923 * err & !f2fs_exist_written_data(sbi, inode->i_ino, ORPHAN_INO)).
936 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
961 err = f2fs_get_node_info(sbi, inode->i_ino, &ni, false);
963 set_sbi_flag(sbi, SBI_NEED_FSCK);
965 f2fs_warn(sbi, "May loss orphan inode, run fsck to fix.");
970 err = f2fs_acquire_orphan_inode(sbi);
972 set_sbi_flag(sbi, SBI_NEED_FSCK);
973 f2fs_warn(sbi, "Too many orphan inodes, run fsck to fix.");
977 f2fs_alloc_nid_done(sbi, inode->i_ino);
983 f2fs_unlock_op(sbi);