• Chao Yu's avatar
    f2fs: fix race in between GC and atomic open · 27319ba4
    Chao Yu authored
    Thread					GC thread
    - f2fs_ioc_start_atomic_write
     - get_dirty_pages
     - filemap_write_and_wait_range
    					- f2fs_gc
    					 - do_garbage_collect
    					  - gc_data_segment
    					   - move_data_page
    					    - f2fs_is_atomic_file
    					    - set_page_dirty
     - set_inode_flag(, FI_ATOMIC_FILE)
    
    Dirty data page can still be generated by GC in race condition as
    above call stack.
    
    This patch adds fi->dio_rwsem[WRITE] in f2fs_ioc_start_atomic_write
    to avoid such race.
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    27319ba4
file.c 70.1 KB