[XFS] Finish removing the mount pointer from the AIL API
Change all the remaining AIL API functions that are passed struct xfs_mount pointers to pass pointers directly to the struct xfs_ail being used. With this conversion, all external access to the AIL is via the struct xfs_ail. Hence the operation and referencing of the AIL is almost entirely independent of the xfs_mount that is using it - it is now much more tightly tied to the log and the items it is tracking in the log than it is tied to the xfs_mount. SGI-PV: 988143 SGI-Modid: xfs-linux-melb:xfs-kern:32353a Signed-off-by: David Chinner <david@fromorbit.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org>
This commit is contained in:
committed by
Lachlan McIlroy
parent
fc1829f34d
commit
783a2f656f
@@ -86,16 +86,16 @@ xfs_trans_ail_tail(
|
||||
* any of the objects, so the lock is not needed.
|
||||
*/
|
||||
void
|
||||
xfs_trans_push_ail(
|
||||
xfs_mount_t *mp,
|
||||
xfs_lsn_t threshold_lsn)
|
||||
xfs_trans_ail_push(
|
||||
struct xfs_ail *ailp,
|
||||
xfs_lsn_t threshold_lsn)
|
||||
{
|
||||
xfs_log_item_t *lip;
|
||||
xfs_log_item_t *lip;
|
||||
|
||||
lip = xfs_ail_min(mp->m_ail);
|
||||
if (lip && !XFS_FORCED_SHUTDOWN(mp)) {
|
||||
if (XFS_LSN_CMP(threshold_lsn, mp->m_ail->xa_target) > 0)
|
||||
xfsaild_wakeup(mp->m_ail, threshold_lsn);
|
||||
lip = xfs_ail_min(ailp);
|
||||
if (lip && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
||||
if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0)
|
||||
xfsaild_wakeup(ailp, threshold_lsn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,7 +412,7 @@ xfsaild_push(
|
||||
*/
|
||||
void
|
||||
xfs_trans_unlocked_item(
|
||||
xfs_mount_t *mp,
|
||||
struct xfs_ail *ailp,
|
||||
xfs_log_item_t *lip)
|
||||
{
|
||||
xfs_log_item_t *min_lip;
|
||||
@@ -424,7 +424,7 @@ xfs_trans_unlocked_item(
|
||||
* over some potentially valid data.
|
||||
*/
|
||||
if (!(lip->li_flags & XFS_LI_IN_AIL) ||
|
||||
XFS_FORCED_SHUTDOWN(mp)) {
|
||||
XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -440,10 +440,10 @@ xfs_trans_unlocked_item(
|
||||
* the call to xfs_log_move_tail() doesn't do anything if there's
|
||||
* not enough free space to wake people up so we're safe calling it.
|
||||
*/
|
||||
min_lip = xfs_ail_min(mp->m_ail);
|
||||
min_lip = xfs_ail_min(ailp);
|
||||
|
||||
if (min_lip == lip)
|
||||
xfs_log_move_tail(mp, 1);
|
||||
xfs_log_move_tail(ailp->xa_mount, 1);
|
||||
} /* xfs_trans_unlocked_item */
|
||||
|
||||
|
||||
@@ -460,12 +460,11 @@ xfs_trans_unlocked_item(
|
||||
* is dropped before returning.
|
||||
*/
|
||||
void
|
||||
xfs_trans_update_ail(
|
||||
xfs_mount_t *mp,
|
||||
xfs_trans_ail_update(
|
||||
struct xfs_ail *ailp,
|
||||
xfs_log_item_t *lip,
|
||||
xfs_lsn_t lsn) __releases(ailp->xa_lock)
|
||||
{
|
||||
struct xfs_ail *ailp = mp->m_ail;
|
||||
xfs_log_item_t *dlip = NULL;
|
||||
xfs_log_item_t *mlip; /* ptr to minimum lip */
|
||||
|
||||
@@ -485,7 +484,7 @@ xfs_trans_update_ail(
|
||||
if (mlip == dlip) {
|
||||
mlip = xfs_ail_min(ailp);
|
||||
spin_unlock(&ailp->xa_lock);
|
||||
xfs_log_move_tail(mp, mlip->li_lsn);
|
||||
xfs_log_move_tail(ailp->xa_mount, mlip->li_lsn);
|
||||
} else {
|
||||
spin_unlock(&ailp->xa_lock);
|
||||
}
|
||||
@@ -509,11 +508,10 @@ xfs_trans_update_ail(
|
||||
* is dropped before returning.
|
||||
*/
|
||||
void
|
||||
xfs_trans_delete_ail(
|
||||
xfs_mount_t *mp,
|
||||
xfs_trans_ail_delete(
|
||||
struct xfs_ail *ailp,
|
||||
xfs_log_item_t *lip) __releases(ailp->xa_lock)
|
||||
{
|
||||
struct xfs_ail *ailp = mp->m_ail;
|
||||
xfs_log_item_t *dlip;
|
||||
xfs_log_item_t *mlip;
|
||||
|
||||
@@ -530,7 +528,8 @@ xfs_trans_delete_ail(
|
||||
if (mlip == dlip) {
|
||||
mlip = xfs_ail_min(ailp);
|
||||
spin_unlock(&ailp->xa_lock);
|
||||
xfs_log_move_tail(mp, (mlip ? mlip->li_lsn : 0));
|
||||
xfs_log_move_tail(ailp->xa_mount,
|
||||
(mlip ? mlip->li_lsn : 0));
|
||||
} else {
|
||||
spin_unlock(&ailp->xa_lock);
|
||||
}
|
||||
@@ -540,6 +539,8 @@ xfs_trans_delete_ail(
|
||||
* If the file system is not being shutdown, we are in
|
||||
* serious trouble if we get to this stage.
|
||||
*/
|
||||
struct xfs_mount *mp = ailp->xa_mount;
|
||||
|
||||
spin_unlock(&ailp->xa_lock);
|
||||
if (!XFS_FORCED_SHUTDOWN(mp)) {
|
||||
xfs_cmn_err(XFS_PTAG_AILDELETE, CE_ALERT, mp,
|
||||
|
Reference in New Issue
Block a user