aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaeho Jeong <daehojeong@google.com>2023-11-17 12:38:55 -0800
committerJaegeuk Kim <jaegeuk@kernel.org>2023-11-28 10:55:59 -0800
commit68abdf360a8d8838d13201dfa234e3df639f7910 (patch)
tree60a75d48face7fb145542856e0675c7ba829a832
parent444c048c15aee81d331e9daebe4357d0670575d7 (diff)
downloadf2fs-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.c5
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]);