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

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

xfs: use ->t_dfops for collapse/insert range operations



Use ->t_dfops for the collapse and insert range transactions. These
are the only callers of the respective bmap helpers, so replace the
unnecessary dfops parameters with direct accesses to ->t_dfops.

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 3e3673e3
Loading
Loading
Loading
Loading
+7 −9
Original line number Original line Diff line number Diff line
@@ -5683,8 +5683,7 @@ xfs_bmap_collapse_extents(
	xfs_fileoff_t		*next_fsb,
	xfs_fileoff_t		*next_fsb,
	xfs_fileoff_t		offset_shift_fsb,
	xfs_fileoff_t		offset_shift_fsb,
	bool			*done,
	bool			*done,
	xfs_fsblock_t		*firstblock,
	xfs_fsblock_t		*firstblock)
	struct xfs_defer_ops	*dfops)
{
{
	int			whichfork = XFS_DATA_FORK;
	int			whichfork = XFS_DATA_FORK;
	struct xfs_mount	*mp = ip->i_mount;
	struct xfs_mount	*mp = ip->i_mount;
@@ -5718,7 +5717,7 @@ xfs_bmap_collapse_extents(
	if (ifp->if_flags & XFS_IFBROOT) {
	if (ifp->if_flags & XFS_IFBROOT) {
		cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
		cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
		cur->bc_private.b.firstblock = *firstblock;
		cur->bc_private.b.firstblock = *firstblock;
		cur->bc_private.b.dfops = dfops;
		cur->bc_private.b.dfops = tp->t_dfops;
		cur->bc_private.b.flags = 0;
		cur->bc_private.b.flags = 0;
	}
	}


@@ -5739,7 +5738,7 @@ xfs_bmap_collapse_extents(
		if (xfs_bmse_can_merge(&prev, &got, offset_shift_fsb)) {
		if (xfs_bmse_can_merge(&prev, &got, offset_shift_fsb)) {
			error = xfs_bmse_merge(ip, whichfork, offset_shift_fsb,
			error = xfs_bmse_merge(ip, whichfork, offset_shift_fsb,
					&icur, &got, &prev, cur, &logflags,
					&icur, &got, &prev, cur, &logflags,
					dfops);
					tp->t_dfops);
			if (error)
			if (error)
				goto del_cursor;
				goto del_cursor;
			goto done;
			goto done;
@@ -5752,7 +5751,7 @@ xfs_bmap_collapse_extents(
	}
	}


	error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
	error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
			&logflags, dfops, new_startoff);
			&logflags, tp->t_dfops, new_startoff);
	if (error)
	if (error)
		goto del_cursor;
		goto del_cursor;


@@ -5806,8 +5805,7 @@ xfs_bmap_insert_extents(
	xfs_fileoff_t		offset_shift_fsb,
	xfs_fileoff_t		offset_shift_fsb,
	bool			*done,
	bool			*done,
	xfs_fileoff_t		stop_fsb,
	xfs_fileoff_t		stop_fsb,
	xfs_fsblock_t		*firstblock,
	xfs_fsblock_t		*firstblock)
	struct xfs_defer_ops	*dfops)
{
{
	int			whichfork = XFS_DATA_FORK;
	int			whichfork = XFS_DATA_FORK;
	struct xfs_mount	*mp = ip->i_mount;
	struct xfs_mount	*mp = ip->i_mount;
@@ -5841,7 +5839,7 @@ xfs_bmap_insert_extents(
	if (ifp->if_flags & XFS_IFBROOT) {
	if (ifp->if_flags & XFS_IFBROOT) {
		cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
		cur = xfs_bmbt_init_cursor(mp, tp, ip, whichfork);
		cur->bc_private.b.firstblock = *firstblock;
		cur->bc_private.b.firstblock = *firstblock;
		cur->bc_private.b.dfops = dfops;
		cur->bc_private.b.dfops = tp->t_dfops;
		cur->bc_private.b.flags = 0;
		cur->bc_private.b.flags = 0;
	}
	}


@@ -5884,7 +5882,7 @@ xfs_bmap_insert_extents(
	}
	}


	error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
	error = xfs_bmap_shift_update_extent(ip, whichfork, &icur, &got, cur,
			&logflags, dfops, new_startoff);
			&logflags, tp->t_dfops, new_startoff);
	if (error)
	if (error)
		goto del_cursor;
		goto del_cursor;


+2 −4
Original line number Original line Diff line number Diff line
@@ -219,14 +219,12 @@ void xfs_bmap_del_extent_cow(struct xfs_inode *ip,
uint	xfs_default_attroffset(struct xfs_inode *ip);
uint	xfs_default_attroffset(struct xfs_inode *ip);
int	xfs_bmap_collapse_extents(struct xfs_trans *tp, struct xfs_inode *ip,
int	xfs_bmap_collapse_extents(struct xfs_trans *tp, struct xfs_inode *ip,
		xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
		xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
		bool *done, xfs_fsblock_t *firstblock,
		bool *done, xfs_fsblock_t *firstblock);
		struct xfs_defer_ops *dfops);
int	xfs_bmap_can_insert_extents(struct xfs_inode *ip, xfs_fileoff_t off,
int	xfs_bmap_can_insert_extents(struct xfs_inode *ip, xfs_fileoff_t off,
		xfs_fileoff_t shift);
		xfs_fileoff_t shift);
int	xfs_bmap_insert_extents(struct xfs_trans *tp, struct xfs_inode *ip,
int	xfs_bmap_insert_extents(struct xfs_trans *tp, struct xfs_inode *ip,
		xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
		xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
		bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock,
		bool *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock);
		struct xfs_defer_ops *dfops);
int	xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
int	xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset);
int	xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
int	xfs_bmapi_reserve_delalloc(struct xfs_inode *ip, int whichfork,
		xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
		xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
+8 −6
Original line number Original line Diff line number Diff line
@@ -1348,12 +1348,13 @@ xfs_collapse_file_space(
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);


		xfs_defer_init(&dfops, &first_block);
		xfs_defer_init(&dfops, &first_block);
		tp->t_dfops = &dfops;
		error = xfs_bmap_collapse_extents(tp, ip, &next_fsb, shift_fsb,
		error = xfs_bmap_collapse_extents(tp, ip, &next_fsb, shift_fsb,
				&done, &first_block, &dfops);
				&done, &first_block);
		if (error)
		if (error)
			goto out_bmap_cancel;
			goto out_bmap_cancel;


		error = xfs_defer_finish(&tp, &dfops);
		error = xfs_defer_finish(&tp, tp->t_dfops);
		if (error)
		if (error)
			goto out_bmap_cancel;
			goto out_bmap_cancel;
		error = xfs_trans_commit(tp);
		error = xfs_trans_commit(tp);
@@ -1362,7 +1363,7 @@ xfs_collapse_file_space(
	return error;
	return error;


out_bmap_cancel:
out_bmap_cancel:
	xfs_defer_cancel(&dfops);
	xfs_defer_cancel(tp->t_dfops);
out_trans_cancel:
out_trans_cancel:
	xfs_trans_cancel(tp);
	xfs_trans_cancel(tp);
	return error;
	return error;
@@ -1427,12 +1428,13 @@ xfs_insert_file_space(
		xfs_ilock(ip, XFS_ILOCK_EXCL);
		xfs_ilock(ip, XFS_ILOCK_EXCL);
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
		xfs_defer_init(&dfops, &first_block);
		xfs_defer_init(&dfops, &first_block);
		tp->t_dfops = &dfops;
		error = xfs_bmap_insert_extents(tp, ip, &next_fsb, shift_fsb,
		error = xfs_bmap_insert_extents(tp, ip, &next_fsb, shift_fsb,
				&done, stop_fsb, &first_block, &dfops);
				&done, stop_fsb, &first_block);
		if (error)
		if (error)
			goto out_bmap_cancel;
			goto out_bmap_cancel;


		error = xfs_defer_finish(&tp, &dfops);
		error = xfs_defer_finish(&tp, tp->t_dfops);
		if (error)
		if (error)
			goto out_bmap_cancel;
			goto out_bmap_cancel;
		error = xfs_trans_commit(tp);
		error = xfs_trans_commit(tp);
@@ -1441,7 +1443,7 @@ xfs_insert_file_space(
	return error;
	return error;


out_bmap_cancel:
out_bmap_cancel:
	xfs_defer_cancel(&dfops);
	xfs_defer_cancel(tp->t_dfops);
	xfs_trans_cancel(tp);
	xfs_trans_cancel(tp);
	return error;
	return error;
}
}