Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9276babd authored by Darrick J. Wong's avatar Darrick J. Wong Committed by Greg Kroah-Hartman
Browse files

xfs: fix partially uninitialized structure in xfs_reflink_remap_extent



[ Upstream commit c142932c29e533ee892f87b44d8abc5719edceec ]

In the reflink extent remap function, it turns out that uirec (the block
mapping corresponding only to the part of the passed-in mapping that got
unmapped) was not fully initialized.  Specifically, br_state was not
being copied from the passed-in struct to the uirec.  This could lead to
unpredictable results such as the reflinked mapping being marked
unwritten in the destination file.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent cae0dc19
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1058,6 +1058,7 @@ xfs_reflink_remap_extent(
		uirec.br_startblock = irec->br_startblock + rlen;
		uirec.br_startoff = irec->br_startoff + rlen;
		uirec.br_blockcount = unmap_len - rlen;
		uirec.br_state = irec->br_state;
		unmap_len = rlen;

		/* If this isn't a real mapping, we're done. */