From: Jaegeuk Kim <jaegeuk@kernel.org>
Date: Wed, 19 Sep 2018 22:45:19 +0000 (-0700)
Subject: f2fs: avoid infinite loop in f2fs_alloc_nid
X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f84262b0862d43b71b3e80a036cdd9d82e620367;p=linux.git

f2fs: avoid infinite loop in f2fs_alloc_nid

If we have an error in f2fs_build_free_nids, we're able to fall into a loop
to find free nids.

Suggested-by: Chao Yu <chao@kernel.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
---

diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index fa2381c0bc475..d62f53096b557 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -2350,8 +2350,9 @@ retry:
 	spin_unlock(&nm_i->nid_list_lock);
 
 	/* Let's scan nat pages and its caches to get free nids */
-	f2fs_build_free_nids(sbi, true, false);
-	goto retry;
+	if (!f2fs_build_free_nids(sbi, true, false))
+		goto retry;
+	return false;
 }
 
 /*