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