f2fs: fix out-of free segments
authorJaegeuk Kim <jaegeuk@kernel.org>
Thu, 20 Apr 2017 20:51:57 +0000 (13:51 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 24 Apr 2017 20:13:23 +0000 (13:13 -0700)
commita788189305df9fa617e5e26dc0914d80d981cd57
tree2bb39bf5e3817cbded92c79a0167928f9b0cb3ae
parent29fa6c567855eb92d21122162029c5709892106b
f2fs: fix out-of free segments

This patch also reverts d0db7703ac1 ("f2fs: do SSR in higher priority").

This patch fixes out of free segments caused by many small file creation by
1) mkfs -s 1 2G
2) mount
3) untar
 - preoduce 60000 small files burstly
4) sync
 - flush node pages
 - flush imeta

Here, when we do f2fs_balance_fs, we missed # of imeta blocks, resulting in
skipping to check has_not_enough_free_secs.

Another test is done by
1) mkfs -s 12 2G
2) mount
3) untar
 - preoduce 60000 small files burstly
4) sync
 - flush node pages
 - flush imeta

In this case, this patch also fixes wrong block allocation under large section
size.

Reported-by: William Brana <wbrana@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c
fs/f2fs/inode.c
fs/f2fs/segment.c