Lines Matching refs:lip
34 struct xfs_log_item *lip) in xfs_ail_check() argument
50 in_ail = test_bit(XFS_LI_IN_AIL, &lip->li_flags); in xfs_ail_check()
51 prev_lip = list_entry(lip->li_ail.prev, struct xfs_log_item, li_ail); in xfs_ail_check()
54 next_lip = list_entry(lip->li_ail.next, struct xfs_log_item, li_ail); in xfs_ail_check()
57 lsn = lip->li_lsn; in xfs_ail_check()
95 struct xfs_log_item *lip) in xfs_ail_next() argument
97 if (lip->li_ail.next == &ailp->ail_head) in xfs_ail_next()
100 return list_first_entry(&lip->li_ail, struct xfs_log_item, li_ail); in xfs_ail_next()
115 struct xfs_log_item *lip = xfs_ail_min(ailp); in __xfs_ail_min_lsn() local
117 if (lip) in __xfs_ail_min_lsn()
118 return lip->li_lsn; in __xfs_ail_min_lsn()
143 struct xfs_log_item *lip; in xfs_ail_max_lsn() local
146 lip = xfs_ail_max(ailp); in xfs_ail_max_lsn()
147 if (lip) in xfs_ail_max_lsn()
148 lsn = lip->li_lsn; in xfs_ail_max_lsn()
179 struct xfs_log_item *lip = cur->item; in xfs_trans_ail_cursor_next() local
181 if ((uintptr_t)lip & 1) in xfs_trans_ail_cursor_next()
182 lip = xfs_ail_min(ailp); in xfs_trans_ail_cursor_next()
183 if (lip) in xfs_trans_ail_cursor_next()
184 cur->item = xfs_ail_next(ailp, lip); in xfs_trans_ail_cursor_next()
185 return lip; in xfs_trans_ail_cursor_next()
211 struct xfs_log_item *lip) in xfs_trans_ail_cursor_clear() argument
216 if (cur->item == lip) in xfs_trans_ail_cursor_clear()
234 struct xfs_log_item *lip; in xfs_trans_ail_cursor_first() local
239 lip = xfs_ail_min(ailp); in xfs_trans_ail_cursor_first()
243 list_for_each_entry(lip, &ailp->ail_head, li_ail) { in xfs_trans_ail_cursor_first()
244 if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) in xfs_trans_ail_cursor_first()
250 if (lip) in xfs_trans_ail_cursor_first()
251 cur->item = xfs_ail_next(ailp, lip); in xfs_trans_ail_cursor_first()
252 return lip; in xfs_trans_ail_cursor_first()
260 struct xfs_log_item *lip; in __xfs_trans_ail_cursor_last() local
262 list_for_each_entry_reverse(lip, &ailp->ail_head, li_ail) { in __xfs_trans_ail_cursor_last()
263 if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) in __xfs_trans_ail_cursor_last()
264 return lip; in __xfs_trans_ail_cursor_last()
299 struct xfs_log_item *lip; in xfs_ail_splice() local
308 lip = cur ? cur->item : NULL; in xfs_ail_splice()
309 if (!lip || (uintptr_t)lip & 1) in xfs_ail_splice()
310 lip = __xfs_trans_ail_cursor_last(ailp, lsn); in xfs_ail_splice()
328 if (lip) in xfs_ail_splice()
329 list_splice(list, &lip->li_ail); in xfs_ail_splice()
340 struct xfs_log_item *lip) in xfs_ail_delete() argument
342 xfs_ail_check(ailp, lip); in xfs_ail_delete()
343 list_del(&lip->li_ail); in xfs_ail_delete()
344 xfs_trans_ail_cursor_clear(ailp, lip); in xfs_ail_delete()
350 struct xfs_log_item *lip) in xfsaild_push_item() argument
365 if (!lip->li_ops->iop_push) in xfsaild_push_item()
367 return lip->li_ops->iop_push(lip, &ailp->ail_buf_list); in xfsaild_push_item()
376 struct xfs_log_item *lip; in xfsaild_push() local
406 lip = xfs_trans_ail_cursor_first(ailp, &cur, ailp->ail_last_pushed_lsn); in xfsaild_push()
407 if (!lip) in xfsaild_push()
412 lsn = lip->li_lsn; in xfsaild_push()
413 while ((XFS_LSN_CMP(lip->li_lsn, target) <= 0)) { in xfsaild_push()
421 lock_result = xfsaild_push_item(ailp, lip); in xfsaild_push()
425 trace_xfs_ail_push(lip); in xfsaild_push()
443 trace_xfs_ail_flushing(lip); in xfsaild_push()
451 trace_xfs_ail_pinned(lip); in xfsaild_push()
458 trace_xfs_ail_locked(lip); in xfsaild_push()
485 lip = xfs_trans_ail_cursor_next(ailp, &cur); in xfsaild_push()
486 if (lip == NULL) in xfsaild_push()
488 lsn = lip->li_lsn; in xfsaild_push()
632 struct xfs_log_item *lip; in xfs_ail_push() local
634 lip = xfs_ail_min(ailp); in xfs_ail_push()
635 if (!lip || XFS_FORCED_SHUTDOWN(ailp->ail_mount) || in xfs_ail_push()
670 struct xfs_log_item *lip; in xfs_ail_push_all_sync() local
674 while ((lip = xfs_ail_max(ailp)) != NULL) { in xfs_ail_push_all_sync()
676 ailp->ail_target = lip->li_lsn; in xfs_ail_push_all_sync()
748 struct xfs_log_item *lip = log_items[i]; in xfs_trans_ail_update_bulk() local
749 if (test_and_set_bit(XFS_LI_IN_AIL, &lip->li_flags)) { in xfs_trans_ail_update_bulk()
751 if (XFS_LSN_CMP(lsn, lip->li_lsn) <= 0) in xfs_trans_ail_update_bulk()
754 trace_xfs_ail_move(lip, lip->li_lsn, lsn); in xfs_trans_ail_update_bulk()
755 if (mlip == lip && !tail_lsn) in xfs_trans_ail_update_bulk()
756 tail_lsn = lip->li_lsn; in xfs_trans_ail_update_bulk()
758 xfs_ail_delete(ailp, lip); in xfs_trans_ail_update_bulk()
760 trace_xfs_ail_insert(lip, 0, lsn); in xfs_trans_ail_update_bulk()
762 lip->li_lsn = lsn; in xfs_trans_ail_update_bulk()
763 list_add(&lip->li_ail, &tmp); in xfs_trans_ail_update_bulk()
782 struct xfs_log_item *lip) in xfs_ail_delete_one() argument
785 xfs_lsn_t lsn = lip->li_lsn; in xfs_ail_delete_one()
787 trace_xfs_ail_delete(lip, mlip->li_lsn, lip->li_lsn); in xfs_ail_delete_one()
788 xfs_ail_delete(ailp, lip); in xfs_ail_delete_one()
789 xfs_clear_li_failed(lip); in xfs_ail_delete_one()
790 clear_bit(XFS_LI_IN_AIL, &lip->li_flags); in xfs_ail_delete_one()
791 lip->li_lsn = 0; in xfs_ail_delete_one()
793 if (mlip == lip) in xfs_ail_delete_one()
822 struct xfs_log_item *lip, in xfs_trans_ail_delete() argument
828 if (!test_bit(XFS_LI_IN_AIL, &lip->li_flags)) { in xfs_trans_ail_delete()
839 tail_lsn = xfs_ail_delete_one(ailp, lip); in xfs_trans_ail_delete()