diff options
author | Chao Yu <yuchao0@huawei.com> | 2018-08-05 23:02:22 +0800 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2018-08-13 10:48:17 -0700 |
commit | c7079853c859c910b9d047a37891b4aafb8f8dd7 (patch) | |
tree | 9d5f827b0c96b80858080012618f1d634c1f3e1e /fs/f2fs/data.c | |
parent | 91291e9998d208370eb8156c760691b873bd7522 (diff) | |
download | linux-c7079853c859c910b9d047a37891b4aafb8f8dd7.tar.bz2 |
f2fs: avoid race between zero_range and background GC
Thread A Background GC
- f2fs_zero_range
- truncate_pagecache_range
- gc_data_segment
- get_read_data_page
- move_data_page
- set_page_dirty
- set_cold_data
- f2fs_do_zero_range
- dn->data_blkaddr = NEW_ADDR;
- f2fs_set_data_blkaddr
Actually, we don't need to set dirty & checked flag on the page, since
all valid data in the page should be zeroed by zero_range().
Use i_gc_rwsem[WRITE] to avoid such race condition.
Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/data.c')
0 files changed, 0 insertions, 0 deletions