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: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
parent
5b03ff1b24
commit
cfb7cdca0a
@ -762,18 +762,13 @@ xfs_log_item_init(
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Wake up processes waiting for log space after we have moved the log tail.
|
* 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
|
void
|
||||||
xfs_log_space_wake(
|
xfs_log_space_wake(
|
||||||
struct xfs_mount *mp,
|
struct xfs_mount *mp)
|
||||||
bool opportunistic)
|
|
||||||
{
|
{
|
||||||
struct xlog_ticket *tic;
|
|
||||||
struct log *log = mp->m_log;
|
struct log *log = mp->m_log;
|
||||||
int need_bytes, free_bytes;
|
int free_bytes;
|
||||||
|
|
||||||
if (XLOG_FORCED_SHUTDOWN(log))
|
if (XLOG_FORCED_SHUTDOWN(log))
|
||||||
return;
|
return;
|
||||||
@ -783,16 +778,7 @@ xfs_log_space_wake(
|
|||||||
|
|
||||||
spin_lock(&log->l_grant_write_lock);
|
spin_lock(&log->l_grant_write_lock);
|
||||||
free_bytes = xlog_space_left(log, &log->l_grant_write_head);
|
free_bytes = xlog_space_left(log, &log->l_grant_write_head);
|
||||||
list_for_each_entry(tic, &log->l_writeq, t_queue) {
|
xlog_writeq_wake(log, &free_bytes);
|
||||||
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);
|
|
||||||
}
|
|
||||||
spin_unlock(&log->l_grant_write_lock);
|
spin_unlock(&log->l_grant_write_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -801,18 +787,7 @@ xfs_log_space_wake(
|
|||||||
|
|
||||||
spin_lock(&log->l_grant_reserve_lock);
|
spin_lock(&log->l_grant_reserve_lock);
|
||||||
free_bytes = xlog_space_left(log, &log->l_grant_reserve_head);
|
free_bytes = xlog_space_left(log, &log->l_grant_reserve_head);
|
||||||
list_for_each_entry(tic, &log->l_reserveq, t_queue) {
|
xlog_reserveq_wake(log, &free_bytes);
|
||||||
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);
|
|
||||||
}
|
|
||||||
spin_unlock(&log->l_grant_reserve_lock);
|
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);
|
trace_xfs_log_ungrant_exit(log, ticket);
|
||||||
|
|
||||||
xfs_log_space_wake(log->l_mp, false);
|
xfs_log_space_wake(log->l_mp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -161,8 +161,7 @@ int xfs_log_mount(struct xfs_mount *mp,
|
|||||||
int num_bblocks);
|
int num_bblocks);
|
||||||
int xfs_log_mount_finish(struct xfs_mount *mp);
|
int xfs_log_mount_finish(struct xfs_mount *mp);
|
||||||
xfs_lsn_t xlog_assign_tail_lsn(struct xfs_mount *mp);
|
xfs_lsn_t xlog_assign_tail_lsn(struct xfs_mount *mp);
|
||||||
void xfs_log_space_wake(struct xfs_mount *mp,
|
void xfs_log_space_wake(struct xfs_mount *mp);
|
||||||
bool opportunistic);
|
|
||||||
int xfs_log_notify(struct xfs_mount *mp,
|
int xfs_log_notify(struct xfs_mount *mp,
|
||||||
struct xlog_in_core *iclog,
|
struct xlog_in_core *iclog,
|
||||||
xfs_log_callback_t *callback_entry);
|
xfs_log_callback_t *callback_entry);
|
||||||
|
@ -671,7 +671,7 @@ xfs_trans_ail_update_bulk(
|
|||||||
|
|
||||||
if (mlip_changed && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
if (mlip_changed && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
||||||
xlog_assign_tail_lsn(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)) {
|
if (mlip_changed && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
||||||
xlog_assign_tail_lsn(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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user