From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753008AbdKGDFj (ORCPT ); Mon, 6 Nov 2017 22:05:39 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:64651 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752423AbdKGDFh (ORCPT ); Mon, 6 Nov 2017 22:05:37 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20171107030535epoutp03159c13e7f0ff8e421820070a69225d8b~0rsTx3rPk3260632606epoutp03G X-AuditID: b6c32a36-325ff70000001039-30-5a0122ffda83 From: Fan Li To: "'Chao Yu'" , "'Chao Yu'" , "'Jaegeuk Kim'" Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Subject: [f2fs-dev] [PATCH] f2fs: keep scanning until enough free nids are acquired Date: Tue, 07 Nov 2017 11:04:33 +0800 Message-id: <001901d35775$47b598f0$d720cad0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset="Windows-1252" Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Content-language: en-us Thread-index: AdNXc6c1LZGS08p1TCGgSaLgn2kkuA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPIsWRmVeSWpSXmKPExsWy7bCmru5/JcYog9ZXEhanp55lsniyfhaz xaVF7haXd81hs5j6eC2rA6tHy5G3rB6bVnWyeexe8JnJ4/MmuQCWKC6blNSczLLUIn27BK6M ++tfsBc8Zq84etChgfEjaxcjJ4eEgInEu1OdTF2MXBxCAjsYJdbcm8AM4XxnlNjXsI4Jpur+ zN+MEIkNjBJPDsxiBkkICbxilLjzKBjEZhNQl9gysxuogYNDRCBV4s0edRCTWcBDYtexUpAK YYFQiUn/jzKC2CwCqhIzOtvZQGxeAUuJY81LoWxBiR+T77GA2MwCBhKvfy1hh7DlJTavecsM cY6CxI6zrxkh4uISkx48BKsREdCTuPPjPdj9EgJL2CQa385mgWhwkfh2YhvUx8ISr45vYQe5 TUJAWuLSUVuI8DpGic9nLCB6tzNKzPv4Eep3a6DFv6CO4JN497WHFaKXV6KjTQiixEPi9JlZ 7BC2o8TmFxNZIaETK7Hh9DaWCYxys5C8NgvJa7OQvDYLyTsLGFlWMYqlFhTnpqcWGxYY6RUn 5haX5qXrJefnbmIEJwstsx2Mi875HGIU4GBU4uGdcZAhSog1say4MvcQowQHs5II73Z1oBBv SmJlVWpRfnxRaU5q8SFGaQ4WJXFe0fXXIoQE0hNLUrNTUwtSi2CyTBycUg2MQVkyFTcdD93b UhzcfZ/fcvVnTsvyFw3as9091mssWDpf6voS7qMTJdoqphww6+2dO9X/SbOeBteyPdoX2axj FnC3vJoqkPmuv3LDnm1OK99s2BG8LufC36UdT96VrGqfE3RrSf+T+6svxZ9beKuuqOqP7z9N XTdlrcX7V29qMb0o7jd1erKFvxJLcUaioRZzUXEiAF/lepISAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLLMWRmVeSWpSXmKPExsVy+t9jQd3/SoxRBuvaOSxOTz3LZPFk/Sxm i0uL3C0u75rDZjH18VpWB1aPliNvWT02repk89i94DOTx+dNcgEsUVw2Kak5mWWpRfp2CVwZ 99e/YC94zF5x9KBDA+NH1i5GTg4JAROJ+zN/M4LYQgLrGCXOdft3MXIB2a8YJZrefWICSbAJ qEtsmdkNZosIpEqsbV7A1sXIwcEs4CGx61gpSFhYIFRi0v+jYHNYBFQlZnS2s4HYvAKWEsea l0LZghI/Jt9jAbGZBfQkPv65zQhhy0tsXvOWGeIeBYkdZ19DxcUlJj14yA6xVk/izo/3zBMY +WchGTULyahZSEbNQtK+gJFlFaNkakFxbnpusVGBYV5quV5xYm5xaV66XnJ+7iZGYCBvO6zV t4Px/pL4Q4wCHIxKPLwzDjJECbEmlhVX5h5ilOBgVhLh3a4OFOJNSaysSi3Kjy8qzUktPsQo zcGiJM57O+9YpJBAemJJanZqakFqEUyWiYNTqoFxTfKbcyaREY8NLm08lKdUu8d6inpjRp1T pMZdU/4vClI/pkz22WRYEGLBMPFl5xb1zqvTWwzfHZ9YIvT4tXGp1Olnt7e83FrweIdWeq1n 7P20KtGJuebHLy/+Pv+40T2/mnzl7yl/mO9Gv9stqM6UM5XPvu/rml5P0TkT5aeZ15W/nuz1 0khUiaU4I9FQi7moOBEAnImo6mACAAA= X-CMS-MailID: 20171107030535epcas1p2094e05ca25eecd2140518cab7a39723d X-Msg-Generator: CA CMS-TYPE: 101P X-CMS-RootMailID: 20171107030535epcas1p2094e05ca25eecd2140518cab7a39723d X-RootMTR: 20171107030535epcas1p2094e05ca25eecd2140518cab7a39723d References: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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