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

Commit cfb7cdca authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Ben Myers
Browse files

xfs: cleanup xfs_log_space_wake



Remove the now unused opportunistic parameter, and use the the
xlog_writeq_wake and xlog_reserveq_wake helpers now that we don't have
to care about the opportunistic wakeups.

Reviewed-by: default avatarMark Tinguely <tinguely@sgi.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 5b03ff1b
Loading
Loading
Loading
Loading
+5 −30
Original line number Diff line number Diff line
@@ -762,18 +762,13 @@ xfs_log_item_init(

/*
 * Wake up processes waiting for log space after we have moved the log tail.
 *
 * If opportunistic is set wake up one waiter even if we do not have enough
 * free space by our strict accounting.
 */
void
xfs_log_space_wake(
	struct xfs_mount	*mp,
	bool			opportunistic)
	struct xfs_mount	*mp)
{
	struct xlog_ticket	*tic;
	struct log		*log = mp->m_log;
	int			need_bytes, free_bytes;
	int			free_bytes;

	if (XLOG_FORCED_SHUTDOWN(log))
		return;
@@ -783,16 +778,7 @@ xfs_log_space_wake(

		spin_lock(&log->l_grant_write_lock);
		free_bytes = xlog_space_left(log, &log->l_grant_write_head);
		list_for_each_entry(tic, &log->l_writeq, t_queue) {
			ASSERT(tic->t_flags & XLOG_TIC_PERM_RESERV);

			if (free_bytes < tic->t_unit_res && !opportunistic)
				break;
			opportunistic = false;
			free_bytes -= tic->t_unit_res;
			trace_xfs_log_regrant_write_wake_up(log, tic);
			wake_up(&tic->t_wait);
		}
		xlog_writeq_wake(log, &free_bytes);
		spin_unlock(&log->l_grant_write_lock);
	}

@@ -801,18 +787,7 @@ xfs_log_space_wake(

		spin_lock(&log->l_grant_reserve_lock);
		free_bytes = xlog_space_left(log, &log->l_grant_reserve_head);
		list_for_each_entry(tic, &log->l_reserveq, t_queue) {
			if (tic->t_flags & XLOG_TIC_PERM_RESERV)
				need_bytes = tic->t_unit_res*tic->t_cnt;
			else
				need_bytes = tic->t_unit_res;
			if (free_bytes < need_bytes && !opportunistic)
				break;
			opportunistic = false;
			free_bytes -= need_bytes;
			trace_xfs_log_grant_wake_up(log, tic);
			wake_up(&tic->t_wait);
		}
		xlog_reserveq_wake(log, &free_bytes);
		spin_unlock(&log->l_grant_reserve_lock);
	}
}
@@ -2748,7 +2723,7 @@ xlog_ungrant_log_space(xlog_t *log,

	trace_xfs_log_ungrant_exit(log, ticket);

	xfs_log_space_wake(log->l_mp, false);
	xfs_log_space_wake(log->l_mp);
}

/*
+1 −2
Original line number Diff line number Diff line
@@ -161,8 +161,7 @@ int xfs_log_mount(struct xfs_mount *mp,
			int		 	num_bblocks);
int	  xfs_log_mount_finish(struct xfs_mount *mp);
xfs_lsn_t xlog_assign_tail_lsn(struct xfs_mount *mp);
void	  xfs_log_space_wake(struct xfs_mount	*mp,
			     bool		opportunistic);
void	  xfs_log_space_wake(struct xfs_mount *mp);
int	  xfs_log_notify(struct xfs_mount	*mp,
			 struct xlog_in_core	*iclog,
			 xfs_log_callback_t	*callback_entry);
+2 −2
Original line number Diff line number Diff line
@@ -671,7 +671,7 @@ xfs_trans_ail_update_bulk(

	if (mlip_changed && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
		xlog_assign_tail_lsn(ailp->xa_mount);
		xfs_log_space_wake(ailp->xa_mount, false);
		xfs_log_space_wake(ailp->xa_mount);
	}
}

@@ -733,7 +733,7 @@ xfs_trans_ail_delete_bulk(

	if (mlip_changed && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
		xlog_assign_tail_lsn(ailp->xa_mount);
		xfs_log_space_wake(ailp->xa_mount, false);
		xfs_log_space_wake(ailp->xa_mount);
	}
}