|
@@ -610,50 +610,6 @@ xfs_ail_push_all(
|
|
|
xfs_ail_push(ailp, threshold_lsn);
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * This is to be called when an item is unlocked that may have
|
|
|
- * been in the AIL. It will wake up the first member of the AIL
|
|
|
- * wait list if this item's unlocking might allow it to progress.
|
|
|
- * If the item is in the AIL, then we need to get the AIL lock
|
|
|
- * while doing our checking so we don't race with someone going
|
|
|
- * to sleep waiting for this event in xfs_trans_push_ail().
|
|
|
- */
|
|
|
-void
|
|
|
-xfs_trans_unlocked_item(
|
|
|
- struct xfs_ail *ailp,
|
|
|
- xfs_log_item_t *lip)
|
|
|
-{
|
|
|
- xfs_log_item_t *min_lip;
|
|
|
-
|
|
|
- /*
|
|
|
- * If we're forcibly shutting down, we may have
|
|
|
- * unlocked log items arbitrarily. The last thing
|
|
|
- * we want to do is to move the tail of the log
|
|
|
- * over some potentially valid data.
|
|
|
- */
|
|
|
- if (!(lip->li_flags & XFS_LI_IN_AIL) ||
|
|
|
- XFS_FORCED_SHUTDOWN(ailp->xa_mount)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- * This is the one case where we can call into xfs_ail_min()
|
|
|
- * without holding the AIL lock because we only care about the
|
|
|
- * case where we are at the tail of the AIL. If the object isn't
|
|
|
- * at the tail, it doesn't matter what result we get back. This
|
|
|
- * is slightly racy because since we were just unlocked, we could
|
|
|
- * go to sleep between the call to xfs_ail_min and the call to
|
|
|
- * xfs_log_space_wake, have someone else lock us, commit to us disk,
|
|
|
- * move us out of the tail of the AIL, and then we wake up. However,
|
|
|
- * the call to xfs_log_space_wake() 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(ailp);
|
|
|
-
|
|
|
- if (min_lip == lip)
|
|
|
- xfs_log_space_wake(ailp->xa_mount, true);
|
|
|
-} /* xfs_trans_unlocked_item */
|
|
|
-
|
|
|
/*
|
|
|
* xfs_trans_ail_update - bulk AIL insertion operation.
|
|
|
*
|