1
0
Fork 0
alistair23-linux/fs/f2fs
Jaegeuk Kim c13ff37e35 f2fs: relax node version check for victim data in gc
- has_not_enough_free_secs
node_secs: 0  dent_secs: 0  freed:0  free_segments:103  reserved:104

          - f2fs_gc
             - get_victim_by_default
alloc_mode 0, gc_mode 1, max_search 2672, offset 4654, ofs_unit 1

                - do_garbage_collect
start_segno 3976, end_segno 3977   type 0

                  - is_alive
nid 22797, blkaddr 2131882, ofs_in_node 0, version 0x8/0x0

                   - gc_data_segment 766, segno 3976, block 512/426 not alive

So, this patch fixes subtle corrupted case where node version does not match
to summary version which results in infinite loop by gc.

Reported-by: Yunlei He <heyunlei@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2017-03-29 17:34:40 -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
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: allow write page cache when writting cp 2017-03-25 00:19:37 -07:00
data.c f2fs: allow write page cache when writting cp 2017-03-25 00:19:37 -07:00
debug.c f2fs: show the max number of volatile operations 2017-03-24 15:10:50 -04:00
dir.c f2fs: cleanup the disk level filename updating 2017-03-21 22:34:33 -04:00
extent_cache.c f2fs: kill __is_extent_same 2017-02-27 10:07:43 -08:00
f2fs.h f2fs: allow write page cache when writting cp 2017-03-25 00:19:37 -07:00
file.c f2fs: show the max number of volatile operations 2017-03-24 15:10:50 -04:00
gc.c f2fs: relax node version check for victim data in gc 2017-03-29 17:34:40 -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: cleanup the disk level filename updating 2017-03-21 22:34:33 -04:00
inode.c f2fs: fix wrong error injection for evict_inode 2017-03-21 16:52:16 -04:00
namei.c f2fs: cleanup the disk level filename updating 2017-03-21 22:34:33 -04:00
node.c f2fs: allow write page cache when writting cp 2017-03-25 00:19:37 -07:00
node.h f2fs: adjust the way of calculating nat block 2017-03-21 22:34:27 -04:00
recovery.c f2fs: change recovery policy of xattr node block 2017-02-23 10:10:52 -08:00
segment.c f2fs: allocate node and hot data in the beginning of partition 2017-03-29 17:34:37 -07:00
segment.h f2fs: start SSR much eariler to avoid FG_GC 2017-03-29 17:34:39 -07:00
shrinker.c f2fs: avoid casted negative value as shrink count 2016-11-23 12:11:03 -08:00
super.c f2fs: allocate node and hot data in the beginning of partition 2017-03-29 17:34:37 -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: don't reserve additional space in xattr block 2017-03-24 15:10:53 -04:00