diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-09-20 01:45:19 +0300 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-09-21 00:49:19 +0300 |
commit | f84262b0862d43b71b3e80a036cdd9d82e620367 (patch) | |
tree | 91b80a0b790b0ecc2c1fb3b815f6a7620907d213 /fs/f2fs/node.c | |
parent | a7d10cf3e4e3e308da01462a1ef8008233ee523d (diff) | |
download | linux-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>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r-- | fs/f2fs/node.c | 5 |
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; } /* |