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

Commit 60e5bb78 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong
Browse files

xfs: merge _xfs_log_force and xfs_log_force



Switch to a single interface for flushing the whole log, which gives
consistent trace point coverage, and removes the unused log_flushed
argument for the previous _xfs_log_force callers.

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 2b56c285
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -619,7 +619,7 @@ xfs_scrub_checkpoint_log(
{
	int			error;

	error = _xfs_log_force(mp, XFS_LOG_SYNC, NULL);
	error = xfs_log_force(mp, XFS_LOG_SYNC);
	if (error)
		return error;
	xfs_ail_push_all_sync(mp->m_ail);
+1 −2
Original line number Diff line number Diff line
@@ -613,8 +613,7 @@ xfs_extent_busy_flush(
	DEFINE_WAIT		(wait);
	int			error;

	trace_xfs_log_force(mp, 0, _THIS_IP_);
	error = _xfs_log_force(mp, XFS_LOG_SYNC, NULL);
	error = xfs_log_force(mp, XFS_LOG_SYNC);
	if (error)
		return;

+5 −21
Original line number Diff line number Diff line
@@ -869,7 +869,7 @@ xfs_log_unmount_write(xfs_mount_t *mp)
		return 0;
	}

	error = _xfs_log_force(mp, XFS_LOG_SYNC, NULL);
	error = xfs_log_force(mp, XFS_LOG_SYNC);
	ASSERT(error || !(XLOG_FORCED_SHUTDOWN(log)));

#ifdef DEBUG
@@ -3304,16 +3304,16 @@ xlog_state_switch_iclogs(
 *		not in the active nor dirty state.
 */
int
_xfs_log_force(
xfs_log_force(
	struct xfs_mount	*mp,
	uint			flags,
	int			*log_flushed)
	uint			flags)
{
	struct xlog		*log = mp->m_log;
	struct xlog_in_core	*iclog;
	xfs_lsn_t		lsn;

	XFS_STATS_INC(mp, xs_log_force);
	trace_xfs_log_force(mp, 0, _RET_IP_);

	xlog_cil_force(log);

@@ -3362,8 +3362,6 @@ _xfs_log_force(
				if (xlog_state_release_iclog(log, iclog))
					return -EIO;

				if (log_flushed)
					*log_flushed = 1;
				spin_lock(&log->l_icloglock);
				if (be64_to_cpu(iclog->ic_header.h_lsn) == lsn &&
				    iclog->ic_state != XLOG_STATE_DIRTY)
@@ -3415,20 +3413,6 @@ _xfs_log_force(
	return 0;
}

/*
 * Wrapper for _xfs_log_force(), to be used when caller doesn't care
 * about errors or whether the log was flushed or not. This is the normal
 * interface to use when trying to unpin items or move the log forward.
 */
void
xfs_log_force(
	xfs_mount_t	*mp,
	uint		flags)
{
	trace_xfs_log_force(mp, 0, _RET_IP_);
	_xfs_log_force(mp, flags, NULL);
}

/*
 * Force the in-core log to disk for a specific LSN.
 *
@@ -4035,7 +4019,7 @@ xfs_log_force_umount(
	 * to guarantee this.
	 */
	if (!logerror)
		_xfs_log_force(mp, XFS_LOG_SYNC, NULL);
		xfs_log_force(mp, XFS_LOG_SYNC);

	/*
	 * mark the filesystem and the as in a shutdown state and wake
+1 −5
Original line number Diff line number Diff line
@@ -129,11 +129,7 @@ xfs_lsn_t xfs_log_done(struct xfs_mount *mp,
		       struct xlog_ticket *ticket,
		       struct xlog_in_core **iclog,
		       bool regrant);
int	  _xfs_log_force(struct xfs_mount *mp,
			 uint		flags,
			 int		*log_forced);
void	  xfs_log_force(struct xfs_mount	*mp,
			uint			flags);
int	  xfs_log_force(struct xfs_mount *mp, uint flags);
int	  _xfs_log_force_lsn(struct xfs_mount *mp,
			     xfs_lsn_t		lsn,
			     uint		flags,