• Chao Yu's avatar
    f2fs: fix to wait all node page writeback · dc5a9412
    Chao Yu authored
    There is a race condition that we may miss to wait for all node pages
    writeback, fix it.
    
    - fsync()				- shrink
     - f2fs_do_sync_file
    					 - __write_node_page
    					  - set_page_writeback(page#0)
    					  : remove DIRTY/TOWRITE flag
      - f2fs_fsync_node_pages
      : won't find page #0 as TOWRITE flag was removeD
      - f2fs_wait_on_node_pages_writeback
      : wont' wait page #0 writeback as it was not in fsync_node_list list.
    					   - f2fs_add_fsync_node_entry
    
    Fixes: 50fa53ec ("f2fs: fix to avoid broken of dnode block list")
    Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    dc5a9412
node.c 76.3 KB