[PATCH] f2fs-tools: adjust nat and block release logic

From: Daeho Jeong
Date: Fri Nov 17 2023 - 15:39:04 EST


From: Daeho Jeong <daehojeong@xxxxxxxxxx>

Fixes: 0f503e443ccb ("f2fs-tools: do not reuse corrupted quota inodes")
Signed-off-by: Daeho Jeong <daehojeong@xxxxxxxxxx>
---
fsck/fsck.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fsck/fsck.c b/fsck/fsck.c
index 55eddca..2bb759c 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]);
--
2.43.0.rc0.421.g78406f8d94-goog