twx-linux/fs/f2fs
Hou Pengyang 19f4e688f8 f2fs: avoid bggc->fggc when enough free segments are avaliable after cp
We use has_not_enough_free_secs to check if there are enough free segments,

    	(free_sections(sbi) + freed) <=
	        (node_secs + 2 * dent_secs + imeta_secs +
			         reserved_sections(sbi) + needed);

Under scenario with large number of dirty nodes, these nodes would be flushed
during cp, as a result, right side of the inequality would be decreased, while
left side stays unchanged if these nodes are flushed in SSR way, which means
there are enough free segments after this cp.

For this case, we just do a bggc instead of fggc.

Signed-off-by: Hou Pengyang <houpengyang@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-02-27 10:07:37 -08: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: show simple call stack in fault injection message 2017-02-27 09:59:55 -08:00
data.c f2fs: show simple call stack in fault injection message 2017-02-27 09:59:55 -08:00
debug.c f2fs: add bitmaps for empty or full NAT blocks 2017-02-27 09:59:54 -08:00
dir.c f2fs: show simple call stack in fault injection message 2017-02-27 09:59:55 -08:00
extent_cache.c f2fs: replace rw semaphore extent_tree_lock with mutex lock 2017-02-27 09:59:53 -08:00
f2fs.h f2fs: show simple call stack in fault injection message 2017-02-27 09:59:55 -08:00
file.c f2fs: init local extent_info to avoid stale stack info in tp 2017-02-27 09:59:50 -08:00
gc.c f2fs: avoid bggc->fggc when enough free segments are avaliable after cp 2017-02-27 10:07:37 -08: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 for-f2fs-4.10 2016-12-14 09:07:36 -08:00
inode.c f2fs: show simple call stack in fault injection message 2017-02-27 09:59:55 -08: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: don't allow encrypted operations without keys 2017-01-29 12:46:01 +09:00
node.c f2fs: show simple call stack in fault injection message 2017-02-27 09:59:55 -08:00
node.h f2fs: remove unsafe bitmap checking 2017-02-27 09:59:51 -08:00
recovery.c f2fs: change recovery policy of xattr node block 2017-02-23 10:10:52 -08:00
segment.c f2fs: select target segment with closer temperature in SSR mode 2017-02-27 09:59:56 -08:00
segment.h f2fs: add ovp valid_blocks check for bg gc victim to fg_gc 2017-02-23 11:28:20 -08:00
shrinker.c f2fs: avoid casted negative value as shrink count 2016-11-23 12:11:03 -08:00
super.c f2fs: enable inline_xattr by default 2017-02-23 10:21:49 -08:00
trace.c f2fs: use bio op accessors 2016-06-07 13:41:38 -06:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: change recovery policy of xattr node block 2017-02-23 10:10:52 -08:00
xattr.h f2fs: enhance lookup xattr 2017-02-22 20:24:51 -08:00