On 2017/11/7 11:04, Fan Li wrote:
> 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...@samsung.com>

Reviewed-by: Chao Yu <yuch...@huawei.com>

Thanks,

> ---
>  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
> 
> 
> 

Reply via email to