diff options
author | Daeho Jeong <daehojeong@google.com> | 2023-11-17 12:38:55 -0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2023-11-28 10:55:59 -0800 |
commit | 68abdf360a8d8838d13201dfa234e3df639f7910 (patch) | |
tree | 60a75d48face7fb145542856e0675c7ba829a832 | |
parent | 444c048c15aee81d331e9daebe4357d0670575d7 (diff) | |
download | f2fs-tools-68abdf360a8d8838d13201dfa234e3df639f7910.tar.gz |
f2fs-tools: adjust nat and block release logic
Fixes: 0f503e443ccb ("f2fs-tools: do not reuse corrupted quota inodes")
Signed-off-by: Daeho Jeong <daehojeong@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r-- | fsck/fsck.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fsck/fsck.c b/fsck/fsck.c index 509b485..50defb1 100644 --- a/fsck/fsck.c +++ b/fsck/fsck.c @@ -3094,10 +3094,13 @@ static void fsck_disconnect_file(struct f2fs_sb_info *sbi, nid_t ino, release_block_cnt(sbi, dealloc); get_node_info(sbi, nid, &ni); release_block(sbi, ni.blk_addr, dealloc); + + if (dealloc) + release_nat_entry(sbi, nid); } /* clear data counters */ - if(!(node->i.i_inline & F2FS_INLINE_DATA)) { + if (!(node->i.i_inline & (F2FS_INLINE_DATA | F2FS_INLINE_DENTRY))) { ofs = get_extra_isize(node); for (i = 0; i < ADDRS_PER_INODE(&node->i); i++) { block_t addr = le32_to_cpu(node->i.i_addr[ofs + i]); |