[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-id: <001901d35775$47b598f0$d720cad0$@samsung.com>
Date: Tue, 07 Nov 2017 11:04:33 +0800
From: Fan Li <fanofcode.li@...sung.com>
To: 'Chao Yu' <chao@...nel.org>, 'Chao Yu' <yuchao0@...wei.com>,
'Jaegeuk Kim' <jaegeuk@...nel.org>
Cc: linux-kernel@...r.kernel.org,
linux-f2fs-devel@...ts.sourceforge.net
Subject: [f2fs-dev] [PATCH] f2fs: keep scanning until enough free nids are
acquired
In current version, after scan_free_nid_bits, the scan is over if nid_cnt[FREE_NID] != 0.
In most cases, there are still free nids in the free list during the scan, and scan_free_nid_bits
usually can't increase nid_cnt[FREE_NID].
It causes that __build_free_nids is called many times without solving the shortage
of the free nids. This patch fixes that.
Signed-off-by: Fan li <fanofcode.li@...sung.com>
---
fs/f2fs/node.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 3d0d1be..5cef118 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -2010,7 +2010,7 @@ static void __build_free_nids(struct f2fs_sb_info *sbi, bool sync, bool mount)
/* try to find free nids in free_nid_bitmap */
scan_free_nid_bits(sbi);
- if (nm_i->nid_cnt[FREE_NID])
+ if (nm_i->nid_cnt[FREE_NID] >= NAT_ENTRY_PER_BLOCK)
return;
}
--
2.7.4
Powered by blists - more mailing lists