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

Commit 3b350898 authored by Brian Foster's avatar Brian Foster Committed by Darrick J. Wong
Browse files

xfs: remove superfluous writeback mapping eof trimming



Now that the cached writeback mapping is explicitly invalidated on
data fork changes, the EOF trimming band-aid is no longer necessary.
Remove xfs_trim_extent_eof() as well since it has no other users.

Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent d9252d52
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -3685,17 +3685,6 @@ xfs_trim_extent(
	}
}

/* trim extent to within eof */
void
xfs_trim_extent_eof(
	struct xfs_bmbt_irec	*irec,
	struct xfs_inode	*ip)

{
	xfs_trim_extent(irec, 0, XFS_B_TO_FSB(ip->i_mount,
					      i_size_read(VFS_I(ip))));
}

/*
 * Trim the returned map to the required bounds
 */
+0 −1
Original line number Diff line number Diff line
@@ -181,7 +181,6 @@ static inline bool xfs_bmap_is_real_extent(struct xfs_bmbt_irec *irec)

void	xfs_trim_extent(struct xfs_bmbt_irec *irec, xfs_fileoff_t bno,
		xfs_filblks_t len);
void	xfs_trim_extent_eof(struct xfs_bmbt_irec *, struct xfs_inode *);
int	xfs_bmap_add_attrfork(struct xfs_inode *ip, int size, int rsvd);
int	xfs_bmap_set_attrforkoff(struct xfs_inode *ip, int size, int *version);
void	xfs_bmap_local_to_extents_empty(struct xfs_inode *ip, int whichfork);
+0 −15
Original line number Diff line number Diff line
@@ -357,19 +357,6 @@ xfs_map_blocks(
	if (XFS_FORCED_SHUTDOWN(mp))
		return -EIO;

	/*
	 * We have to make sure the cached mapping is within EOF to protect
	 * against eofblocks trimming on file release leaving us with a stale
	 * mapping. Otherwise, a page for a subsequent file extending buffered
	 * write could get picked up by this writeback cycle and written to the
	 * wrong blocks.
	 *
	 * Note that what we really want here is a generic mapping invalidation
	 * mechanism to protect us from arbitrary extent modifying contexts, not
	 * just eofblocks.
	 */
	xfs_trim_extent_eof(&wpc->imap, ip);

	/*
	 * COW fork blocks can overlap data fork blocks even if the blocks
	 * aren't shared.  COW I/O always takes precedent, so we must always
@@ -482,7 +469,6 @@ xfs_map_blocks(
	}

	wpc->imap = imap;
	xfs_trim_extent_eof(&wpc->imap, ip);
	trace_xfs_map_blocks_found(ip, offset, count, wpc->io_type, &imap);
	return 0;
allocate_blocks:
@@ -494,7 +480,6 @@ xfs_map_blocks(
	ASSERT(whichfork == XFS_COW_FORK || cow_fsb == NULLFILEOFF ||
	       imap.br_startoff + imap.br_blockcount <= cow_fsb);
	wpc->imap = imap;
	xfs_trim_extent_eof(&wpc->imap, ip);
	trace_xfs_map_blocks_alloc(ip, offset, count, wpc->io_type, &imap);
	return 0;
}