Lines Matching refs:lip
38 xfs_log_item_t *lip) in xfs_ail_check() argument
48 ASSERT((lip->li_flags & XFS_LI_IN_AIL) != 0); in xfs_ail_check()
49 prev_lip = list_entry(lip->li_ail.prev, xfs_log_item_t, li_ail); in xfs_ail_check()
51 ASSERT(XFS_LSN_CMP(prev_lip->li_lsn, lip->li_lsn) <= 0); in xfs_ail_check()
53 prev_lip = list_entry(lip->li_ail.next, xfs_log_item_t, li_ail); in xfs_ail_check()
55 ASSERT(XFS_LSN_CMP(prev_lip->li_lsn, lip->li_lsn) >= 0); in xfs_ail_check()
84 xfs_log_item_t *lip) in xfs_ail_next() argument
86 if (lip->li_ail.next == &ailp->xa_ail) in xfs_ail_next()
89 return list_first_entry(&lip->li_ail, xfs_log_item_t, li_ail); in xfs_ail_next()
105 xfs_log_item_t *lip; in xfs_ail_min_lsn() local
108 lip = xfs_ail_min(ailp); in xfs_ail_min_lsn()
109 if (lip) in xfs_ail_min_lsn()
110 lsn = lip->li_lsn; in xfs_ail_min_lsn()
124 xfs_log_item_t *lip; in xfs_ail_max_lsn() local
127 lip = xfs_ail_max(ailp); in xfs_ail_max_lsn()
128 if (lip) in xfs_ail_max_lsn()
129 lsn = lip->li_lsn; in xfs_ail_max_lsn()
160 struct xfs_log_item *lip = cur->item; in xfs_trans_ail_cursor_next() local
162 if ((uintptr_t)lip & 1) in xfs_trans_ail_cursor_next()
163 lip = xfs_ail_min(ailp); in xfs_trans_ail_cursor_next()
164 if (lip) in xfs_trans_ail_cursor_next()
165 cur->item = xfs_ail_next(ailp, lip); in xfs_trans_ail_cursor_next()
166 return lip; in xfs_trans_ail_cursor_next()
192 struct xfs_log_item *lip) in xfs_trans_ail_cursor_clear() argument
197 if (cur->item == lip) in xfs_trans_ail_cursor_clear()
215 xfs_log_item_t *lip; in xfs_trans_ail_cursor_first() local
220 lip = xfs_ail_min(ailp); in xfs_trans_ail_cursor_first()
224 list_for_each_entry(lip, &ailp->xa_ail, li_ail) { in xfs_trans_ail_cursor_first()
225 if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) in xfs_trans_ail_cursor_first()
231 if (lip) in xfs_trans_ail_cursor_first()
232 cur->item = xfs_ail_next(ailp, lip); in xfs_trans_ail_cursor_first()
233 return lip; in xfs_trans_ail_cursor_first()
241 xfs_log_item_t *lip; in __xfs_trans_ail_cursor_last() local
243 list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { in __xfs_trans_ail_cursor_last()
244 if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) in __xfs_trans_ail_cursor_last()
245 return lip; in __xfs_trans_ail_cursor_last()
280 struct xfs_log_item *lip; in xfs_ail_splice() local
289 lip = cur ? cur->item : NULL; in xfs_ail_splice()
290 if (!lip || (uintptr_t)lip & 1) in xfs_ail_splice()
291 lip = __xfs_trans_ail_cursor_last(ailp, lsn); in xfs_ail_splice()
309 if (lip) in xfs_ail_splice()
310 list_splice(list, &lip->li_ail); in xfs_ail_splice()
321 xfs_log_item_t *lip) in xfs_ail_delete() argument
323 xfs_ail_check(ailp, lip); in xfs_ail_delete()
324 list_del(&lip->li_ail); in xfs_ail_delete()
325 xfs_trans_ail_cursor_clear(ailp, lip); in xfs_ail_delete()
334 xfs_log_item_t *lip; in xfsaild_push() local
363 lip = xfs_trans_ail_cursor_first(ailp, &cur, ailp->xa_last_pushed_lsn); in xfsaild_push()
364 if (!lip) { in xfsaild_push()
376 lsn = lip->li_lsn; in xfsaild_push()
377 while ((XFS_LSN_CMP(lip->li_lsn, target) <= 0)) { in xfsaild_push()
385 lock_result = lip->li_ops->iop_push(lip, &ailp->xa_buf_list); in xfsaild_push()
389 trace_xfs_ail_push(lip); in xfsaild_push()
407 trace_xfs_ail_flushing(lip); in xfsaild_push()
415 trace_xfs_ail_pinned(lip); in xfsaild_push()
422 trace_xfs_ail_locked(lip); in xfsaild_push()
449 lip = xfs_trans_ail_cursor_next(ailp, &cur); in xfsaild_push()
450 if (lip == NULL) in xfsaild_push()
452 lsn = lip->li_lsn; in xfsaild_push()
560 xfs_log_item_t *lip; in xfs_ail_push() local
562 lip = xfs_ail_min(ailp); in xfs_ail_push()
563 if (!lip || XFS_FORCED_SHUTDOWN(ailp->xa_mount) || in xfs_ail_push()
598 struct xfs_log_item *lip; in xfs_ail_push_all_sync() local
602 while ((lip = xfs_ail_max(ailp)) != NULL) { in xfs_ail_push_all_sync()
604 ailp->xa_target = lip->li_lsn; in xfs_ail_push_all_sync()
654 struct xfs_log_item *lip = log_items[i]; in xfs_trans_ail_update_bulk() local
655 if (lip->li_flags & XFS_LI_IN_AIL) { in xfs_trans_ail_update_bulk()
657 if (XFS_LSN_CMP(lsn, lip->li_lsn) <= 0) in xfs_trans_ail_update_bulk()
660 trace_xfs_ail_move(lip, lip->li_lsn, lsn); in xfs_trans_ail_update_bulk()
661 xfs_ail_delete(ailp, lip); in xfs_trans_ail_update_bulk()
662 if (mlip == lip) in xfs_trans_ail_update_bulk()
665 lip->li_flags |= XFS_LI_IN_AIL; in xfs_trans_ail_update_bulk()
666 trace_xfs_ail_insert(lip, 0, lsn); in xfs_trans_ail_update_bulk()
668 lip->li_lsn = lsn; in xfs_trans_ail_update_bulk()
669 list_add(&lip->li_ail, &tmp); in xfs_trans_ail_update_bulk()
721 struct xfs_log_item *lip = log_items[i]; in xfs_trans_ail_delete_bulk() local
722 if (!(lip->li_flags & XFS_LI_IN_AIL)) { in xfs_trans_ail_delete_bulk()
735 trace_xfs_ail_delete(lip, mlip->li_lsn, lip->li_lsn); in xfs_trans_ail_delete_bulk()
736 xfs_ail_delete(ailp, lip); in xfs_trans_ail_delete_bulk()
737 lip->li_flags &= ~XFS_LI_IN_AIL; in xfs_trans_ail_delete_bulk()
738 lip->li_lsn = 0; in xfs_trans_ail_delete_bulk()
739 if (mlip == lip) in xfs_trans_ail_delete_bulk()