Lines Matching defs:lip

35 	struct xfs_log_item	*lip)
52 in_ail = test_bit(XFS_LI_IN_AIL, &lip->li_flags);
53 prev_lip = list_entry(lip->li_ail.prev, struct xfs_log_item, li_ail);
56 next_lip = list_entry(lip->li_ail.next, struct xfs_log_item, li_ail);
59 lsn = lip->li_lsn;
97 struct xfs_log_item *lip)
99 if (lip->li_ail.next == &ailp->ail_head)
102 return list_first_entry(&lip->li_ail, struct xfs_log_item, li_ail);
117 struct xfs_log_item *lip = xfs_ail_min(ailp);
119 if (lip)
120 return lip->li_lsn;
145 struct xfs_log_item *lip;
148 lip = xfs_ail_max(ailp);
149 if (lip)
150 lsn = lip->li_lsn;
174 * was invalidated (indicated by a lip of 1), restart the traversal.
181 struct xfs_log_item *lip = cur->item;
183 if ((uintptr_t)lip & 1)
184 lip = xfs_ail_min(ailp);
185 if (lip)
186 cur->item = xfs_ail_next(ailp, lip);
187 return lip;
213 struct xfs_log_item *lip)
218 if (cur->item == lip)
236 struct xfs_log_item *lip;
241 lip = xfs_ail_min(ailp);
245 list_for_each_entry(lip, &ailp->ail_head, li_ail) {
246 if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0)
252 if (lip)
253 cur->item = xfs_ail_next(ailp, lip);
254 return lip;
262 struct xfs_log_item *lip;
264 list_for_each_entry_reverse(lip, &ailp->ail_head, li_ail) {
265 if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0)
266 return lip;
301 struct xfs_log_item *lip;
310 lip = cur ? cur->item : NULL;
311 if (!lip || (uintptr_t)lip & 1)
312 lip = __xfs_trans_ail_cursor_last(ailp, lsn);
326 * lip points to the item in the AIL _after_ which the new
327 * items should go. If lip is null the AIL was empty, so
330 if (lip)
331 list_splice(list, &lip->li_ail);
342 struct xfs_log_item *lip)
344 xfs_ail_check(ailp, lip);
345 list_del(&lip->li_ail);
346 xfs_trans_ail_cursor_clear(ailp, lip);
367 struct xfs_log_item *lip,
370 struct xfs_buf *bp = lip->li_buf;
381 list_for_each_entry(lip, &bp->b_li_list, li_bio_list) {
383 clear_bit(XFS_LI_FAILED, &lip->li_flags);
385 xfs_clear_li_failed(lip);
395 struct xfs_log_item *lip)
410 if (!lip->li_ops->iop_push)
412 if (test_bit(XFS_LI_FAILED, &lip->li_flags))
413 return xfsaild_resubmit_item(lip, &ailp->ail_buf_list);
414 return lip->li_ops->iop_push(lip, &ailp->ail_buf_list);
423 struct xfs_log_item *lip;
458 lip = xfs_ail_max(ailp);
459 if (lip)
460 target = lip->li_lsn;
469 lip = xfs_trans_ail_cursor_first(ailp, &cur, ailp->ail_last_pushed_lsn);
470 if (!lip)
477 lsn = lip->li_lsn;
478 while ((XFS_LSN_CMP(lip->li_lsn, target) <= 0)) {
486 lock_result = xfsaild_push_item(ailp, lip);
490 trace_xfs_ail_push(lip);
508 trace_xfs_ail_flushing(lip);
516 trace_xfs_ail_pinned(lip);
523 trace_xfs_ail_locked(lip);
550 lip = xfs_trans_ail_cursor_next(ailp, &cur);
551 if (lip == NULL)
553 lsn = lip->li_lsn;
697 struct xfs_log_item *lip;
699 lip = xfs_ail_min(ailp);
700 if (!lip || xlog_is_shutdown(ailp->ail_log) ||
811 struct xfs_log_item *lip = log_items[i];
812 if (test_and_set_bit(XFS_LI_IN_AIL, &lip->li_flags)) {
814 if (XFS_LSN_CMP(lsn, lip->li_lsn) <= 0)
817 trace_xfs_ail_move(lip, lip->li_lsn, lsn);
818 if (mlip == lip && !tail_lsn)
819 tail_lsn = lip->li_lsn;
821 xfs_ail_delete(ailp, lip);
823 trace_xfs_ail_insert(lip, 0, lsn);
825 lip->li_lsn = lsn;
826 list_add_tail(&lip->li_ail, &tmp);
839 struct xfs_log_item *lip,
843 xfs_trans_ail_update_bulk(ailp, NULL, &lip, 1, lsn);
856 struct xfs_log_item *lip)
859 xfs_lsn_t lsn = lip->li_lsn;
861 trace_xfs_ail_delete(lip, mlip->li_lsn, lip->li_lsn);
862 xfs_ail_delete(ailp, lip);
863 clear_bit(XFS_LI_IN_AIL, &lip->li_flags);
864 lip->li_lsn = 0;
866 if (mlip == lip)
873 struct xfs_log_item *lip,
876 struct xfs_ail *ailp = lip->li_ailp;
881 if (!test_bit(XFS_LI_IN_AIL, &lip->li_flags)) {
893 xfs_clear_li_failed(lip);
894 tail_lsn = xfs_ail_delete_one(ailp, lip);