On 2019/10/18 14:37, Shin'ichiro Kawasaki wrote: > When fsck updates one of the current segments, update_curseg_info() is > called specifying a single current segment as its argument. However, > update_curseg_info() calls move_curseg_info() function which updates all > six current segments. Then update_curseg_info() for a single current > segment moves all current segments. > > This excessive current segment move causes an issue when a new zone is > assigned to a current segment because of write pointer inconsistency. > Even when a current segment has write pointer inconsistency, all other > current segments should not be moved because they may have fsync data > at their positions. > > To avoid the excessive current segment move, introduce > move_one_curseg_info() function which does same work as > move_curseg_info() only for a single current segment. Call > move_one_curseg_info() in place of move_curseg_info() from > update_curseg_info().
Good catch! > > Signed-off-by: Shin'ichiro Kawasaki <[email protected]> Reviewed-by: Chao Yu <[email protected]> Thanks, _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
