Lines Matching refs:lip

34 	struct xfs_log_item	*lip)
51 in_ail = test_bit(XFS_LI_IN_AIL, &lip->li_flags);
52 prev_lip = list_entry(lip->li_ail.prev, struct xfs_log_item, li_ail);
55 next_lip = list_entry(lip->li_ail.next, struct xfs_log_item, li_ail);
58 lsn = lip->li_lsn;
96 struct xfs_log_item *lip)
98 if (lip->li_ail.next == &ailp->ail_head)
101 return list_first_entry(&lip->li_ail, struct xfs_log_item, li_ail);
116 struct xfs_log_item *lip = xfs_ail_min(ailp);
118 if (lip)
119 return lip->li_lsn;
144 struct xfs_log_item *lip;
147 lip = xfs_ail_max(ailp);
148 if (lip)
149 lsn = lip->li_lsn;
173 * was invalidated (indicated by a lip of 1), restart the traversal.
180 struct xfs_log_item *lip = cur->item;
182 if ((uintptr_t)lip & 1)
183 lip = xfs_ail_min(ailp);
184 if (lip)
185 cur->item = xfs_ail_next(ailp, lip);
186 return lip;
212 struct xfs_log_item *lip)
217 if (cur->item == lip)
235 struct xfs_log_item *lip;
240 lip = xfs_ail_min(ailp);
244 list_for_each_entry(lip, &ailp->ail_head, li_ail) {
245 if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0)
251 if (lip)
252 cur->item = xfs_ail_next(ailp, lip);
253 return lip;
261 struct xfs_log_item *lip;
263 list_for_each_entry_reverse(lip, &ailp->ail_head, li_ail) {
264 if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0)
265 return lip;
300 struct xfs_log_item *lip;
309 lip = cur ? cur->item : NULL;
310 if (!lip || (uintptr_t)lip & 1)
311 lip = __xfs_trans_ail_cursor_last(ailp, lsn);
325 * lip points to the item in the AIL _after_ which the new
326 * items should go. If lip is null the AIL was empty, so
329 if (lip)
330 list_splice(list, &lip->li_ail);
341 struct xfs_log_item *lip)
343 xfs_ail_check(ailp, lip);
344 list_del(&lip->li_ail);
345 xfs_trans_ail_cursor_clear(ailp, lip);
366 struct xfs_log_item *lip,
369 struct xfs_buf *bp = lip->li_buf;
380 list_for_each_entry(lip, &bp->b_li_list, li_bio_list) {
382 clear_bit(XFS_LI_FAILED, &lip->li_flags);
384 xfs_clear_li_failed(lip);
394 struct xfs_log_item *lip)
409 if (!lip->li_ops->iop_push)
411 if (test_bit(XFS_LI_FAILED, &lip->li_flags))
412 return xfsaild_resubmit_item(lip, &ailp->ail_buf_list);
413 return lip->li_ops->iop_push(lip, &ailp->ail_buf_list);
422 struct xfs_log_item *lip;
452 lip = xfs_trans_ail_cursor_first(ailp, &cur, ailp->ail_last_pushed_lsn);
453 if (!lip)
458 lsn = lip->li_lsn;
459 while ((XFS_LSN_CMP(lip->li_lsn, target) <= 0)) {
467 lock_result = xfsaild_push_item(ailp, lip);
471 trace_xfs_ail_push(lip);
489 trace_xfs_ail_flushing(lip);
497 trace_xfs_ail_pinned(lip);
504 trace_xfs_ail_locked(lip);
531 lip = xfs_trans_ail_cursor_next(ailp, &cur);
532 if (lip == NULL)
534 lsn = lip->li_lsn;
678 struct xfs_log_item *lip;
680 lip = xfs_ail_min(ailp);
681 if (!lip || XFS_FORCED_SHUTDOWN(ailp->ail_mount) ||
716 struct xfs_log_item *lip;
720 while ((lip = xfs_ail_max(ailp)) != NULL) {
722 ailp->ail_target = lip->li_lsn;
794 struct xfs_log_item *lip = log_items[i];
795 if (test_and_set_bit(XFS_LI_IN_AIL, &lip->li_flags)) {
797 if (XFS_LSN_CMP(lsn, lip->li_lsn) <= 0)
800 trace_xfs_ail_move(lip, lip->li_lsn, lsn);
801 if (mlip == lip && !tail_lsn)
802 tail_lsn = lip->li_lsn;
804 xfs_ail_delete(ailp, lip);
806 trace_xfs_ail_insert(lip, 0, lsn);
808 lip->li_lsn = lsn;
809 list_add(&lip->li_ail, &tmp);
822 struct xfs_log_item *lip,
826 xfs_trans_ail_update_bulk(ailp, NULL, &lip, 1, lsn);
839 struct xfs_log_item *lip)
842 xfs_lsn_t lsn = lip->li_lsn;
844 trace_xfs_ail_delete(lip, mlip->li_lsn, lip->li_lsn);
845 xfs_ail_delete(ailp, lip);
846 clear_bit(XFS_LI_IN_AIL, &lip->li_flags);
847 lip->li_lsn = 0;
849 if (mlip == lip)
856 struct xfs_log_item *lip,
859 struct xfs_ail *ailp = lip->li_ailp;
864 if (!test_bit(XFS_LI_IN_AIL, &lip->li_flags)) {
876 xfs_clear_li_failed(lip);
877 tail_lsn = xfs_ail_delete_one(ailp, lip);