Commit 1a39ae41 authored by Gao Xiang's avatar Gao Xiang Committed by Darrick J. Wong
Browse files

xfs: add missing cmap->br_state = XFS_EXT_NORM update



COW extents are already converted into written real extents after
xfs_reflink_convert_cow_locked(), therefore cmap->br_state should
reflect it.

Otherwise, there is another necessary unwritten convertion
triggered in xfs_dio_write_end_io() for direct I/O cases.

Signed-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent 7e57714c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -425,7 +425,10 @@ xfs_reflink_allocate_cow(
	if (!convert_now || cmap->br_state == XFS_EXT_NORM)
		return 0;
	trace_xfs_reflink_convert_cow(ip, cmap);
	return xfs_reflink_convert_cow_locked(ip, offset_fsb, count_fsb);
	error = xfs_reflink_convert_cow_locked(ip, offset_fsb, count_fsb);
	if (!error)
		cmap->br_state = XFS_EXT_NORM;
	return error;

out_trans_cancel:
	xfs_trans_cancel(tp);