summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2018-09-20 01:45:19 +0300
committerJaegeuk Kim <jaegeuk@kernel.org>2018-09-21 00:49:19 +0300
commitf84262b0862d43b71b3e80a036cdd9d82e620367 (patch)
tree91b80a0b790b0ecc2c1fb3b815f6a7620907d213
parenta7d10cf3e4e3e308da01462a1ef8008233ee523d (diff)
downloadlinux-f84262b0862d43b71b3e80a036cdd9d82e620367.tar.xz
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>
-rw-r--r--fs/f2fs/node.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index fa2381c0bc47..d62f53096b55 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;
}
/*