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

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

xfs: set xefi_discard when creating a deferred agfl free log intent item



[ Upstream commit 2c334e12f957cd8c6bb66b4aa3f79848b7c33cab ]

Make sure that we actually initialize xefi_discard when we're scheduling
a deferred free of an AGFL block.  This was (eventually) found by the
UBSAN while I was banging on realtime rmap problems, but it exists in
the upstream codebase.  While we're at it, rearrange the structure to
reduce the struct size from 64 to 56 bytes.

Fixes: fcb762f5 ("xfs: add bmapi nodiscard flag")
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 243a1646
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2213,6 +2213,7 @@ xfs_defer_agfl_block(
	new->xefi_startblock = XFS_AGB_TO_FSB(mp, agno, agbno);
	new->xefi_blockcount = 1;
	new->xefi_oinfo = *oinfo;
	new->xefi_skip_discard = false;

	trace_xfs_agfl_free_defer(mp, agno, 0, agbno, 1);

+1 −1
Original line number Diff line number Diff line
@@ -52,9 +52,9 @@ struct xfs_extent_free_item
{
	xfs_fsblock_t		xefi_startblock;/* starting fs block number */
	xfs_extlen_t		xefi_blockcount;/* number of blocks in extent */
	bool			xefi_skip_discard;
	struct list_head	xefi_list;
	struct xfs_owner_info	xefi_oinfo;	/* extent owner */
	bool			xefi_skip_discard;
};

#define	XFS_BMAP_MAX_NMAP	4