f2fs: avoid infinite loop in f2fs_alloc_nid
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 19 Sep 2018 22:45:19 +0000 (15:45 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 26 Oct 2018 18:23:14 +0000 (11:23 -0700)
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>
fs/f2fs/node.c

index 3bfd89534ff2f30f05b05c1aa47489b6a0974fb7..645e287770c0db2bcf4e8ce53699e3eeee450de0 100644 (file)
@@ -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;
 }
 
 /*