From: Huang Ying Date: Sun, 7 Sep 2014 03:05:20 +0000 (+0800) Subject: f2fs: avoid node page to be written twice in gc_node_segment X-Git-Tag: fixes-for-v3.18-merge-window~8^2~32 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9a01b56b1a79e210e9d2d67c9b18906d31d536c4;p=pandora-kernel.git f2fs: avoid node page to be written twice in gc_node_segment In gc_node_segment, if node page gc is run concurrently with node page writeback, and check_valid_map and get_node_page run after page locked and before cur_valid_map is updated as below, it is possible for the page to be written twice unnecessarily. sync_node_pages try_lock_page ... check_valid_map f2fs_write_node_page ... write_node_page do_write_page allocate_data_block ... refresh_sit_entry /* update cur_valid_map */ ... ... unlock_page get_node_page ... set_page_dirty ... f2fs_put_page unlock_page This can be solved via calling check_valid_map after get_node_page again. Signed-off-by: Huang, Ying Signed-off-by: Jaegeuk Kim --- Reading git-diff-tree failed