You can find the instructions on how to interact with me at Here. If you have any questions, please contact the SIG: Kernel, and any of the maintainers. 表态 回复 openeuler-sync-bot 成员 1月2日 20:23 当前仓库存在以下 保护分支: Protected BranchVersionRelease OLK-5.10 OLK-6.6 ...
one nid is free in nat bitmap, and blkaddr in its NAT entry is not NULL_ADDR, it may trigger BUG_ON() in f2fs_new_node_page(), fix it. Reported-by: Dipanjan Das <mail.dipanjan.das@gmail.com> Signed-off-by: Chao Yu <chao.yu@oppo.com> Signed-off-by: Jaegeuk Kim <jaegeuk@...
f2fs_write_checkpoint --> f2fs_flush_nat_entries --> __flush_nat_entry_set --> /* flush dirty nats in nat entry set */list_for_each_entry_safe(ne, cur, &set->entry_list, list) {structf2fs_nat_entry*raw_ne;nid_tnid =nat_get_nid(ne);intoffset;f2fs_bug_on(sbi,nat_get_blka...
nid);//从基数树中删除这个节点1644f2fs_bug_on(sbi, !i || i->state !=NID_ALLOC);1645__del_from_free_nid_list(nm_i, i);//从链表中删除..1648kmem_cache_free(free_nid_slab, i);1649}1650
后来经过确定是另外一个同学修改了Linux的KSWAP的代码存在Bug,KSWAP就是在内核里绕过文件系统,直接对data分区的物理地址直接读写,出错的原因是因为在某些条件下写的物理地址错了,正好写到了Node page的区域。 故障修复 虽然找到了引起问题的原因,但是针对这类问题为什么fsck.f2fs没有修复呢?于是上网找了一下发现针对这...
f2fs_bug_on(sbi, reason >= MAX_STOP_REASON); f2fs_down_write(&sbi->sb_lock); if (raw_super->s_stop_reason[reason] < ((1 << BITS_PER_BYTE) - 1)) raw_super->s_stop_reason[reason]++; err = f2fs_commit_super(sbi, false); if (err) f2fs_err(sbi, "f2fs_commit_super fails...
f2fs_wait_on_page_writeback(dn.node_page, NODE, true, true); err = f2fs_get_node_info(sbi, dn.nid, &ni); if (err) goto err; f2fs_bug_on(sbi, ni.ino != ino_of_node(page)); if (ofs_of_node(dn.node_page) != ofs_of_node(page)) { ...
- BUG_ON(err); - - return *(u32 *)desc.ctx; + return crc32(crc, address, length); } static inline u32 f2fs_crc32(struct f2fs_sb_info *sbi, const void *address, unsigned int length) { diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c ...
/* reinit free segmap based on SIT */ err = build_sit_entries(sbi); init_free_segmap(sbi); err = build_dirty_segmap(sbi); err = sanity_check_curseg(sbi); } segment的管理数据初始化流程比较直白,首先分配内存,创建flush任务、初始化sit_info结构体、初始化free_segmap、初始化curse...
f2fs_cp_error(sbi)); goto stop; } f2fs_flush_sit_entries(sbi, cpc); /* save inmem log status */ f2fs_save_inmem_curseg(sbi); err = do_checkpoint(sbi, cpc); if (err) { f2fs_err(sbi, "do_checkpoint failed err:%d, stop checkpoint", err); f2fs_bug_on(sbi, !f2fs_cp_error...