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

Commit 6b18af0d authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong
Browse files

xfs: remove XFS_BMAP_MAX_SHIFT_EXTENTS



The define was always set to 1, which means looping until we reach is
was dead code from the start.

Also remove an initialization of next_fsb for the done case that doesn't
fit the new code flow - it was never checked by the caller in the done
case to start with.

Signed-off-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 4ed36c6b
Loading
Loading
Loading
Loading
+20 −27
Original line number Diff line number Diff line
@@ -5703,8 +5703,7 @@ xfs_bmse_shift_one(
/*
 * Shift extent records to the left/right to cover/create a hole.
 *
 * The maximum number of extents to be shifted in a single operation is
 * @num_exts. @stop_fsb specifies the file offset at which to stop shift and the
 * @stop_fsb specifies the file offset at which to stop shift and the
 * file offset where we've left off is returned in @next_fsb. @offset_shift_fsb
 * is the length by which each extent is shifted. If there is no hole to shift
 * the extents into, this will be considered invalid operation and we abort
@@ -5720,14 +5719,12 @@ xfs_bmap_shift_extents(
	xfs_fileoff_t		stop_fsb,
	xfs_fsblock_t		*firstblock,
	struct xfs_defer_ops	*dfops,
	enum shift_direction	direction,
	int			num_exts)
	enum shift_direction	direction)
{
	struct xfs_btree_cur		*cur = NULL;
	struct xfs_bmbt_irec            got;
	struct xfs_mount		*mp = ip->i_mount;
	struct xfs_ifork		*ifp;
	xfs_extnum_t			nexts = 0;
	xfs_extnum_t			current_ext;
	xfs_extnum_t			total_extents;
	xfs_extnum_t			stop_extent;
@@ -5825,7 +5822,6 @@ xfs_bmap_shift_extents(
		}
	}

	while (nexts++ < num_exts) {
	error = xfs_bmse_shift_one(ip, whichfork, offset_shift_fsb,
				   &current_ext, &got, cur, &logflags,
				   direction, dfops);
@@ -5842,13 +5838,10 @@ xfs_bmap_shift_extents(

	if (current_ext == stop_extent) {
		*done = 1;
			*next_fsb = NULLFSBLOCK;
			break;
		goto del_cursor;
	}
	xfs_iext_get_extent(ifp, current_ext, &got);
	}

	if (!*done)
	*next_fsb = got.br_startoff;

del_cursor:
+1 −11
Original line number Diff line number Diff line
@@ -183,15 +183,6 @@ static inline bool xfs_bmap_is_real_extent(struct xfs_bmbt_irec *irec)
		!isnullstartblock(irec->br_startblock);
}

/*
 * This macro is used to determine how many extents will be shifted
 * in one write transaction. We could require two splits,
 * an extent move on the first and an extent merge on the second,
 * So it is proper that one extent is shifted inside write transaction
 * at a time.
 */
#define XFS_BMAP_MAX_SHIFT_EXTENTS	1

enum shift_direction {
	SHIFT_LEFT = 0,
	SHIFT_RIGHT,
@@ -240,8 +231,7 @@ uint xfs_default_attroffset(struct xfs_inode *ip);
int	xfs_bmap_shift_extents(struct xfs_trans *tp, struct xfs_inode *ip,
		xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb,
		int *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock,
		struct xfs_defer_ops *dfops, enum shift_direction direction,
		int num_exts);
		struct xfs_defer_ops *dfops, enum shift_direction direction);
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,
		xfs_fileoff_t off, xfs_filblks_t len, xfs_filblks_t prealloc,
+2 −12
Original line number Diff line number Diff line
@@ -1359,14 +1359,9 @@ xfs_collapse_file_space(
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);

		xfs_defer_init(&dfops, &first_block);

		/*
		 * We are using the write transaction in which max 2 bmbt
		 * updates are allowed
		 */
		error = xfs_bmap_shift_extents(tp, ip, &next_fsb, shift_fsb,
				&done, stop_fsb, &first_block, &dfops,
				SHIFT_LEFT, XFS_BMAP_MAX_SHIFT_EXTENTS);
				SHIFT_LEFT);
		if (error)
			goto out_bmap_cancel;

@@ -1438,14 +1433,9 @@ xfs_insert_file_space(
		xfs_ilock(ip, XFS_ILOCK_EXCL);
		xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
		xfs_defer_init(&dfops, &first_block);

		/*
		 * We are using the write transaction in which max 2 bmbt
		 * updates are allowed
		 */
		error = xfs_bmap_shift_extents(tp, ip, &next_fsb, shift_fsb,
				&done, stop_fsb, &first_block, &dfops,
				SHIFT_RIGHT, XFS_BMAP_MAX_SHIFT_EXTENTS);
				SHIFT_RIGHT);
		if (error)
			goto out_bmap_cancel;