linux_dsm_epyc7002/fs/f2fs
Jaegeuk Kim a788189305 f2fs: fix out-of free segments
This patch also reverts d0db7703ac ("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>
2017-04-24 13:13:23 -07:00
..
acl.c f2fs: keep dirty inodes selectively for checkpoint 2016-11-23 12:11:08 -08:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: give time to flush dirty pages for checkpoint 2017-04-12 12:57:07 -07:00
data.c f2fs: fix out-of free segments 2017-04-24 13:13:23 -07:00
debug.c f2fs: add undiscard blocks stat 2017-04-19 11:00:45 -07:00
dir.c f2fs: split make_dentry_ptr() into block and inline versions 2017-04-05 11:05:08 -07:00
extent_cache.c f2fs: introduce __check_rb_tree_consistence 2017-04-19 11:00:44 -07:00
f2fs.h f2fs: improve definition of statistic macros 2017-04-24 13:13:22 -07:00
file.c f2fs: add ioctl to flush data from faster device to cold area 2017-04-24 12:55:41 -07:00
gc.c f2fs: assign allocation hint for warm/cold data 2017-04-24 13:06:53 -07:00
gc.h f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
hash.c f2fs: introduce dot and dotdot name check 2015-05-28 15:41:34 -07:00
inline.c f2fs: split make_dentry_ptr() into block and inline versions 2017-04-05 11:05:08 -07:00
inode.c f2fs: fix out-of free segments 2017-04-24 13:13:23 -07:00
Kconfig f2fs: add mount option to select fault injection ratio 2016-05-07 10:32:22 -07:00
Makefile fs crypto: move per-file encryption from f2fs tree to fs/crypto 2016-03-17 21:19:33 -07:00
namei.c f2fs: fix fs corruption due to zero inode page 2017-04-12 12:57:06 -07:00
node.c f2fs: fix not to set fsync/dentry mark 2017-04-12 12:57:09 -07:00
node.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00
recovery.c f2fs: avoid dirty node pages in check_only recovery 2017-04-18 13:37:49 -07:00
segment.c f2fs: fix out-of free segments 2017-04-24 13:13:23 -07:00
segment.h f2fs: add ioctl to flush data from faster device to cold area 2017-04-24 12:55:41 -07:00
shrinker.c f2fs: avoid casted negative value as shrink count 2016-11-23 12:11:03 -08:00
super.c f2fs: clean up get_valid_blocks with consistent parameter 2017-04-10 19:48:12 -07:00
trace.c f2fs: use set_page_private marcro in f2fs_trace_pid 2017-03-24 15:10:49 -04:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: don't reserve additional space in xattr block 2017-03-24 15:10:53 -04:00
xattr.h f2fs: guard macro variables with braces 2017-04-10 19:48:10 -07:00